Author: cabraham
Date: 2007-12-19 13:08:58 -0500 (Wed, 19 Dec 2007)
New Revision: 12008
Modified:
opencore/trunk/opencore/stats/stats.pt
opencore/trunk/opencore/stats/stats.py
Log:
took queries out of __init__ which was causing security problems; __init__
queries are made with security level anon
Modified: opencore/trunk/opencore/stats/stats.pt
===================================================================
--- opencore/trunk/opencore/stats/stats.pt 2007-12-19 17:25:37 UTC (rev
12007)
+++ opencore/trunk/opencore/stats/stats.pt 2007-12-19 18:08:58 UTC (rev
12008)
@@ -16,7 +16,7 @@
<td>never used beyond first 24 hours</td>
</tr>
<tr>
- <td tal:content="python: len(view.members)" />
+ <td tal:content="python: len(view.get_members())" />
<td tal:content="python: len(view.get_active_members())" />
<td tal:content="python: '%.1f days from %d members' %
view.get_member_stickiness()" />
<td tal:content="python: len(view.get_unused_members())" />
@@ -31,7 +31,7 @@
<td>never used beyond first 24 hours</td>
</tr>
<tr>
- <td tal:content="python: len(view.projects)" />
+ <td tal:content="python: len(view.get_projects())" />
<td tal:content="python: len(view.get_active_projects())" />
<td tal:content="python: '%.1f days from %d projects' %
view.get_project_stickiness()" />
<td tal:content="python: len(view.get_unused_projects())" />
@@ -46,7 +46,7 @@
<td>never used beyond first 24 hours</td>
</tr>
<tr>
- <td tal:content="python: len(view.mailing_lists)" />
+ <td tal:content="python: len(view.get_mailing_lists())" />
<td tal:content="python: len(view.get_active_mailing_lists())" />
<td tal:content="python: '%.1f days from %d projects' %
view.get_project_stickiness()" />
<td tal:content="python: len(view.get_unused_mailing_lists())" />
@@ -56,7 +56,7 @@
<tr><td>member</td>
<td>modified</td>
<td>created</td></tr>
- <tr tal:repeat="mem view/members">
+ <tr tal:repeat="mem view/get_members">
<td tal:content="mem/Title"/>
<td tal:content="mem/modified" />
<td tal:content="mem/created"/></tr>
@@ -66,7 +66,7 @@
<tr><td>project</td>
<td>modified</td>
<td>created</td></tr>
- <tr tal:repeat="proj view/projects">
+ <tr tal:repeat="proj view/get_projects">
<td tal:content="proj/Title"/>
<td tal:content="proj/modified" />
<td tal:content="proj/created"/></tr>
@@ -76,7 +76,7 @@
<tr><td>mailing list</td>
<td>latest_date</td>
<td>created</td></tr>
- <tr tal:repeat="ml view/mailing_lists">
+ <tr tal:repeat="ml view/get_mailing_lists">
<td tal:content="ml/Title"/>
<td tal:content="ml/latest_date" />
<td tal:content="ml/created"/></tr>
Modified: opencore/trunk/opencore/stats/stats.py
===================================================================
--- opencore/trunk/opencore/stats/stats.py 2007-12-19 17:25:37 UTC (rev
12007)
+++ opencore/trunk/opencore/stats/stats.py 2007-12-19 18:08:58 UTC (rev
12008)
@@ -16,14 +16,21 @@
self.membrane_tool = getToolByName(self.context, 'membrane_tool')
self.expiry_days = 30
self.expiry_date = DateTime.now()-self.expiry_days
+ self.ran_queries = False
+ def _init_queries(self):
# do initial catalog queries
+ if self.ran_queries:
+ return
+ else:
+ self.ran_queries = True
+
query = dict()
mem_brains = self.membrane_tool(**query)
- self.members = mem_brains
+ self._members = mem_brains
query = dict(portal_type='OpenProject')
proj_brains = self.catalog(**query)
- self.projects = proj_brains
+ self._projects = proj_brains
query = dict(portal_type='Open Mailing List')
ml_brains = self.catalog(**query)
mailing_lists = ml_brains
@@ -41,13 +48,16 @@
mls.append({'Title':lst.Title,
'latest_date':latest_date,
'created':lst.created})
- self.mailing_lists = mls
+ self._mailing_lists = mls
+ def get_members(self):
+ self._init_queries()
+ return self._members
def get_active_members(self):
# "active" is defined as having logged in since expiry_date
filtered_members = []
- for mem in self.members:
+ for mem in self.get_members():
if mem.modified > self.expiry_date:
filtered_members.append(mem)
return filtered_members
@@ -55,7 +65,7 @@
def get_unused_members(self):
# "unused" is defined as never using the account beyond the first 24
hours
filtered_members = []
- for mem in self.members:
+ for mem in self.get_members():
if (mem.modified - mem.created < 1) and (mem.modified <
self.expiry_date):
filtered_members.append(mem)
return filtered_members
@@ -66,7 +76,7 @@
# equals the average length of time a member is active
active_length = 0
i = 0
- for mem in self.members:
+ for mem in self.get_members():
if (mem.modified < self.expiry_date) and (mem.modified -
mem.created >= 1):
i += 1
active_length += mem.modified - mem.created
@@ -77,6 +87,9 @@
avg_active_length = 0
return avg_active_length, i
+ def get_projects(self):
+ self._init_queries()
+ return self._projects
def get_active_projects(self):
# "active" is defined as having been modified since expiry_date
@@ -84,14 +97,14 @@
# this includes updating project prefs
# does not include contents deletion
# XXX what about including mailing list, tt, blog activity etc.
- filtered_projects = [project for project in self.projects if
project.modified > self.expiry_date]
+ filtered_projects = [project for project in self.get_projects() if
project.modified > self.expiry_date]
return filtered_projects
def get_unused_projects(self):
# "unused" is defined as having never been modified beyond the
# first 24 hours after it was created
filtered_projects = []
- for proj in self.projects:
+ for proj in self.get_projects():
if (proj.modified < self.expiry_date) and (proj.modified -
proj.created < 1):
filtered_projects.append(proj)
return filtered_projects
@@ -103,7 +116,7 @@
# equals the average length of time a project is active
active_length = 0
i = 0
- for proj in self.projects:
+ for proj in self.get_projects():
if (proj.modified < self.expiry_date) and (proj.modified -
proj.created >= 1):
i += 1
active_length += proj.modified - proj.created
@@ -114,11 +127,14 @@
avg_active_length = 0
return avg_active_length, i
+ def get_mailing_lists(self):
+ self._init_queries()
+ return self._mailing_lists
def get_active_mailing_lists(self):
# "active" is defined as having a message in the last 30 days
filtered_lists = []
- for lst in self.mailing_lists:
+ for lst in self.get_mailing_lists():
if lst['latest_date'] > self.expiry_date:
filtered_lists.append(lst)
return filtered_lists
@@ -127,7 +143,7 @@
# "unused" is defined as having never been used beyond the
# first 24 hours after it was created
filtered_lists = []
- for lst in self.mailing_lists:
+ for lst in self.get_mailing_lists():
if (lst['latest_date'] < self.expiry_date) and (lst['latest_date']
- lst['created'] < 1):
filtered_lists.append(lst)
return filtered_lists
--
Archive:
http://www.openplans.org/projects/opencore/lists/openplans-svn/archive/2007/12/1198087740155
To unsubscribe send an email with subject unsubscribe to [EMAIL PROTECTED]
Please contact [EMAIL PROTECTED] for questions.