Example #1
0
 def _process(self):
     data = _export_cache.get(request.args['token'])
     file_format = request.view_args['format']
     if file_format == 'csv':
         return send_csv('bookings.csv', **data)
     elif file_format == 'xlsx':
         return send_xlsx('bookings.xlsx', **data)
    def process(self, start_month, end_month):
        start_dt, end_dt = get_month_dates(start_month, end_month)
        result, months = calculate_monthly_stats(start_dt, end_dt)
        # number of days within the boundary dates (inclusive)
        num_days = ((end_dt - start_dt).days + 1)

        headers = ['Building', 'Experiment', 'Number of desks']
        for m in months:
            headers += [m.strftime('%b %Y'), m.strftime('%b %Y (%%)')]
        headers.append('Total')
        headers.append('Total (%)')

        rows = []
        for building, experiments in result:
            for experiment, row_data in experiments:
                row = {
                    'Building': building,
                    'Experiment': experiment,
                    'Number of desks': row_data['desk_count']
                }
                for i, m in enumerate(row_data['months']):
                    month_dt = months[i]
                    month_duration = ((months[i] + relativedelta(months=1, days=-1)) - months[i]).days + 1
                    percent = float(m) / (row_data['desk_count'] * month_duration) * 100
                    row[month_dt.strftime('%b %Y')] = m
                    row[month_dt.strftime('%b %Y (%%)')] = f'{percent:.2f}%'
                row['Total'] = row_data['bookings']
                percent = float(row_data['bookings']) / (row_data['desk_count'] * num_days) * 100
                row['Total (%)'] = f'{percent:.2f}%'
                rows.append(row)
        return send_csv('burotel_stats.csv', headers, rows)
Example #3
0
 def _process(self):
     headers, rows = generate_spreadsheet_from_sessions(self.sessions)
     return send_csv('sessions.csv', headers, rows)
Example #4
0
 def _process(self):
     headers, rows = generate_spreadsheet_from_registrations(
         self.registrations, self.export_config['regform_items'],
         self.export_config['static_item_ids'])
     return send_csv('registrations.csv', headers, rows)
Example #5
0
 def _process(self):
     return send_csv('abstracts.csv', *self._generate_spreadsheet())
 def _process(self):
     headers, rows = self._generate_spreadsheet()
     return send_csv('CERN_Access.csv', headers, rows)
Example #7
0
 def _process(self):
     headers, rows = generate_spreadsheet_from_contributions(self.contribs)
     return send_csv('contributions.csv', headers, rows)
Example #8
0
 def _process(self):
     headers, rows = generate_spreadsheet_from_registrations(
         self.registrations, self.regform_items, self.special_item_ids)
     return send_csv('registrations.csv', headers, rows)
Example #9
0
 def _export(self, filename, headers, rows):
     return send_csv(filename + '.csv', headers, rows)
Example #10
0
 def _process(self):
     headers, rows = generate_spreadsheet_from_contributions(self.contribs)
     return send_csv('contributions.csv', headers, rows)
Example #11
0
 def _process(self):
     headers, rows = generate_spreadsheet_from_sessions(self.sessions)
     return send_csv('sessions.csv', headers, rows)
Example #12
0
 def _export(self, filename, headers, rows):
     return send_csv(filename + '.csv', headers, rows)
Example #13
0
 def _process(self):
     headers, rows = generate_spreadsheet_from_registrations(self.registrations, self.export_config['regform_items'],
                                                             self.export_config['static_item_ids'])
     return send_csv('registrations.csv', headers, rows)
Example #14
0
 def _process(self):
     headers, rows = generate_spreadsheet_from_registrations(self.registrations, self.regform_items,
                                                             self.special_item_ids)
     return send_csv('registrations.csv', headers, rows)
Example #15
0
 def _process(self):
     emails = [{'Email': user.email} for user in self.role.members]
     return send_csv('role-members.csv', ['Email'],
                     emails,
                     include_header=False)