Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

Visitor Generator should update website ts_created field with earliest date #1373

Closed
JulienMoumne opened this Issue · 8 comments

4 participants

@JulienMoumne
Collaborator

Scenario:

1) Create a site

2) Generate visits for 2 days (ie. set $daysToCompute to 2 in /misc/generateVisits.php#15)

3) Access dashboard

4) Setting the calendar to day n-1 is not permitted even though there is data generated for that day

Proposal: In /trunk/core/Controller.php#322 replace $this->site->getCreationDate()->getDatetime(); by a query to the database to get the oldest date from the database.

If an "import piwik data" functionality would be developed later on, data older than the creation date of a site could be created. The same issue would occur.

@robocoder
Collaborator

Since the Site record is already loaded (i.e., avoid adding a new, potentially slow, query) and rather than deprecating this column, an alternative would be to add a method to change ts_created to reflect the earliest date for generated/imported data.

@JulienMoumne
Collaborator

Wouldn't it be useful to leave untouched the ts_created field if one day the initial value is needed ?

It may be wise to keep the two concepts well separated. One date is the site administrative creation date within a particular instance of piwik (ts_created). The other date is the earliest known visit recorded for the website.

@robocoder
Collaborator

Not really, since getCreationDate() loses its meaning/intent/value if the database is populated with older data. In these cases, I suspect we have to add code to reprocess the archives.

@mattab
Owner

agreed with vipsoft, it would be easier to update the ts_created time directly at the end of the visit generator process (less overhead, and the ts_created is not really useful if the user created fake visits anyway... as this is probably a fake/testing/temporary piwik website)

@halfdan
Collaborator

What implementation is preferred now?

Should the Visitor Generator:

  • send a plain SQL-Query to the database and change ts_created?
  • call a new API method (or: updateSite(.., ts_created = '') ) to update ts_created?
@mattab
Owner

ts_created cant be updated via API (not logical) so you can do it manually, or refactor in Core the following code from Integration->createWebsite


        // Manually set the website creation date to a day earlier than the earliest day we record stats for
        Zend_Registry::get('db')->update(Piwik_Common::prefixTable("site"), 
                                            array('ts_created' => Piwik_Date::factory($dateTime)->subDay(1)->getDatetime()),
                                            "idsite = $idSite"
                                                );


@mattab
Owner

confusing and easy to fix, let's do it

@mattab
Owner

(In [3660]) Fixes #1373

@JulienMoumne JulienMoumne added this to the Piwik 1.2 milestone
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.