Ejemplo n.º 1
0
 def postprocess_ac_record(self):
     context = aq_inner(self.context)
     report = self.report()
     ac_data = getattr(context, 'report_ac')
     ac_report = json.loads(ac_data)
     metric = report[1]
     table = metric['dataTable']
     rows = table['rows']
     for entry in ac_report[:50]:
         time_rec = entry['record_date']['mysql']
         time_comps = time_rec.split('-')
         entry_date = '{0}.{1}.{2}'.format(time_comps[2],
                                           time_comps[1],
                                           time_comps[0])
         new_row = {
             'xd:trackingDate': entry_date,
             'xd:trackingUserId': entry['user']['display_name'],
             'xd:trackingSummary': entry['summary'],
             'xd:trackingValue': entry['value']
         }
         rows.append(new_row)
     table['rows'] = rows
     metric['dataTable'] = table
     stored = getattr(context, 'report')
     data = json.loads(stored)
     items = data['items']
     items[1] = metric
     setattr(context, 'report', json.dumps(data))
     modified(context)
     context.reindexObject(idxs='modified')
     msg = _(u"Built links data table was successfully updated")
     api.portal.show_message(msg, self.request)
     return msg
Ejemplo n.º 2
0
 def update(self):
     context = aq_inner(self.context)
     self.errors = {}
     unwanted = ('_authenticator', 'form.button.Submit')
     required = ('title')
     if 'form.button.Submit' in self.request:
         authenticator = getMultiAdapter((context, self.request),
                                         name=u"authenticator")
         if not authenticator.verify():
             raise Unauthorized
         form = self.request.form
         form_data = {}
         form_errors = {}
         errorIdx = 0
         for value in form:
             if value not in unwanted:
                 form_data[value] = safe_unicode(form[value])
                 if not form[value] and value in required:
                     error = {}
                     error['active'] = True
                     error['msg'] = _(u"This field is required")
                     form_errors[value] = error
                     errorIdx += 1
                 else:
                     error = {}
                     error['active'] = False
                     error['msg'] = form[value]
                     form_errors[value] = error
         if errorIdx > 0:
             self.errors = form_errors
         else:
             self._create_dashboard(form)
Ejemplo n.º 3
0
 def _clear_dashboard_asignment(self, data):
     context = aq_inner(self.context)
     user = api.user.get(username=self.user_id)
     properties = dict(
         dashboard='',
     )
     user.setMemberProperties(properties)
     IStatusMessage(self.request).addStatusMessage(
         _(u"Dashboard acces has been revoked"),
         type='info')
     base_url = context.absolute_url()
     params = '/@@manage-users?user={0}'.format(self.user_id)
     next_url = base_url + params
     return self.request.response.redirect(next_url)
Ejemplo n.º 4
0
 def _update_dashboard_asignment(self, data):
     context = aq_inner(self.context)
     user = api.user.get(username=self.user_id)
     properties = {'dashboard': data['dashboard']}
     user.setMemberProperties(mapping=properties)
     dashboard = uuidToObject(data['dashboard'])
     api.user.grant_roles(
         username=self.user_id,
         roles=['Reader'],
         obj=dashboard
     )
     IStatusMessage(self.request).addStatusMessage(
         _(u"User has been granted dashboard access"),
         type='info')
     base_url = context.absolute_url()
     params = '/@@manage-users?user={0}'.format(self.user_id)
     next_url = base_url + params
     return self.request.response.redirect(next_url)
Ejemplo n.º 5
0
 def ga_record(self):
     context = aq_inner(self.context)
     report = self.report()
     ga_queries = {
         'keywords': 5,
         'referral': 6
     }
     for qt in ga_queries:
         report_index = ga_queries[qt]
         ga_report = self.build_report_ga()
         metric = report[report_index]
         table = metric['dataTable']
         rows = table['rows']
         cols = table['cols']
         if 'totalsForAllResults' in ga_report:
             first_row = ga_report['totalsForAllResults']
             first_row['ga:keyword'] = 'totalsForAllResults'
             rows.append(first_row)
         if 'dataTable' in ga_report:
             data_table = ga_report['dataTable']
             dt_rows = data_table['rows']
             for r in dt_rows:
                 item = {}
                 row_columns = r['c']
                 for x in range(7):
                     item_key = cols[x]['id']
                     item[item_key] = row_columns[x]['v']
                 rows.append(item)
         table['rows'] = rows
         metric['dataTable'] = table
         stored = getattr(context, 'report')
         data = json.loads(stored)
         items = data['items']
         items[report_index] = metric
     setattr(context, 'report', json.dumps(data))
     modified(context)
     context.reindexObject(idxs='modified')
     msg = _(u"Report data table was successfully updated")
     api.portal.show_message(msg, self.request)
     return msg