def download(self, REQUEST=None, RESPONSE=None):
        """returns all the subscriptions in a csv file"""

        header = ['User', 'Location', 'Notification type', 'Language']
        rows = []
        for s in self.admin_get_subscriptions():
            row = []
            row.append(s['user'])
            if (s['location']):
                row.append(s['location'])
            else:
                row.append('entire portal')
            row.append(s['notif_type'])
            row.append(s['lang'])
            rows.append(row)

        file_type = REQUEST.get('file_type', 'CSV')
        if file_type == 'CSV':
            RESPONSE.setHeader('Content-Type', 'text/csv')
            RESPONSE.setHeader('Content-Disposition',
                               'attachment; filename=subscriptions.csv')
            return generate_csv(header, rows)
        if file_type == 'Excel' and self.rstk['we_provide']('Excel export'):
            RESPONSE.setHeader('Content-Type', 'application/vnd.ms-excel')
            RESPONSE.setHeader('Content-Disposition',
                               'attachment; filename=subscriptions.xls')
            return generate_excel(header, rows)
        else:
            raise ValueError('unknown file format %r' % file_type)
Example #2
0
    def download(self, RESPONSE, search_string=u'', sort_by='',
            reverse_sort='False', file_type='CSV'):
        """returns all the search results in a csv or excel file"""
        reverse_sort = reverse_sort != 'False'
        users = self._search_users(search_string, sort_by, reverse_sort)

        if self.is_member():
            header = ['Name', 'Organisation', 'Postal address', 'Email',
                              'Access level', 'User ID']
            rows = [[user['name'], user['organisation'], user['postal_address'],
                     user['email'], user['access_level'], user['userid']]
                    for user in users]
        else:
            header = ['Name', 'Organisation']
            rows = [[user['name'], user['organisation']]
                    for user in users]

        if file_type == 'CSV':
            RESPONSE.setHeader('Content-Type', 'text/csv')
            RESPONSE.setHeader('Content-Disposition',
                               'attachment; filename=%s.csv' % self.id)
            return generate_csv(header, rows)
        elif file_type == 'Excel' and self.rstk.we_provide('Excel export'):
            RESPONSE.setHeader('Content-Type', 'application/vnd.ms-excel')
            RESPONSE.setHeader('Content-Disposition',
                               'attachment; filename=%s.xls' % self.id)
            return generate_excel(header, rows)
        else:
            raise ValueError('unknown file format %r' % file_type)
Example #3
0
    def download(self, REQUEST=None, RESPONSE=None):
        """returns all the answers in a csv file"""
        def stringify(value):
            if not isinstance(value, basestring):
                value = unicode(value)
            if isinstance(value, str):
                return unicode(value, 'utf-8')
            return value

        def all_stringify(row):
            return [stringify(value) for value in row]

        answers = self.getAnswers()
        widgets = self.getSortedWidgets()
        header = ['Respondent']
        for widget in widgets:
            header += [widget.title_or_id()]
            if widget.meta_type == 'Naaya Radio Matrix Widget':
                header += widget.rows
        rows = [answer.answer_values() for answer in answers]
        rows = [all_stringify(item) for item in rows]

        file_type = REQUEST.get('file_type', 'CSV')
        if file_type == 'CSV':
            RESPONSE.setHeader('Content-Type', 'text/csv')
            RESPONSE.setHeader('Content-Disposition',
                               'attachment; filename=%s.csv' % self.id)
            return generate_csv(header, rows)
        if file_type == 'Excel' and self.rstk.we_provide('Excel export'):
            RESPONSE.setHeader('Content-Type', 'application/vnd.ms-excel')
            RESPONSE.setHeader('Content-Disposition',
                               'attachment; filename=%s.xls' % self.id)
            return generate_excel(header, rows)
        else:
            raise ValueError('unknown file format %r' % file_type)
Example #4
0
    def download(self,
                 RESPONSE,
                 search_string=u'',
                 sort_by='',
                 reverse_sort='False',
                 file_type='CSV'):
        """returns all the search results in a csv or excel file"""
        reverse_sort = reverse_sort != 'False'
        users = self._search_users(search_string, sort_by, reverse_sort)

        if self.is_member():
            header = [
                'Name', 'Organisation', 'Postal address', 'Email',
                'Access level', 'User ID'
            ]
            rows = [[
                user['name'], user['organisation'], user['postal_address'],
                user['email'], user['access_level'], user['userid']
            ] for user in users]
        else:
            header = ['Name', 'Organisation']
            rows = [[user['name'], user['organisation']] for user in users]

        if file_type == 'CSV':
            RESPONSE.setHeader('Content-Type', 'text/csv')
            RESPONSE.setHeader('Content-Disposition',
                               'attachment; filename=%s.csv' % self.id)
            return generate_csv(header, rows)
        elif file_type == 'Excel' and self.rstk.we_provide('Excel export'):
            RESPONSE.setHeader('Content-Type', 'application/vnd.ms-excel')
            RESPONSE.setHeader('Content-Disposition',
                               'attachment; filename=%s.xls' % self.id)
            return generate_excel(header, rows)
        else:
            raise ValueError('unknown file format %r' % file_type)
Example #5
0
    def download_webex(self, REQUEST=None, RESPONSE=None):
        """exports the participants listing in a Webex-compatible CSV file"""

        # This will be refactored to export to Skype, Webex will be shut
        # down. Right now this method is not used.

        header = [
            'UUID', 'Name', 'Email', 'Company', 'JobTitle', 'URL', 'OffCntry',
            'OffLocal', 'CellCntry', 'CellLocal', 'FaxCntry', 'FaxLocal',
            'Address1', 'Address2', 'City', 'State/Province', 'Zip/Postal',
            'Country', 'Time Zone', 'Language', 'Locale', 'UserName', 'Notes'
        ]
        rows = []
        participants = self.getAttendees()
        for participant in participants:
            part_info = self.getAttendeeInfo(participant)
            participant_info = [
                part_info['uid'], part_info['name'], part_info['email'],
                part_info['organization'], part_info['role'], '',
                part_info['phone'], '', '', '', '', '', '', '', '', '', '',
                country_from_country_code.get(part_info['country'], ''), '',
                '', '', part_info['uid'], ''
            ]
            rows.append(participant_info)

        filename = '%s_%s_%s.csv' % (self.getMeeting().getId(
        ), self.id, datetime.now().strftime("%Y-%m-%d_%H-%M-%S"))
        RESPONSE.setHeader('Content-Type', 'text/csv')
        RESPONSE.setHeader('Content-Disposition',
                           'attachment; filename=%s' % filename)
        return generate_csv(header, rows)
Example #6
0
    def download(self, REQUEST=None, RESPONSE=None):
        """returns all the subscriptions in a csv file"""

        header = ['User', 'Location', 'Notification type', 'Language']
        rows = []
        for s in self.admin_get_subscriptions():
            row = []
            row.append(s['user'])
            if (s['location']):
                row.append(s['location'])
            else:
                row.append('entire portal')
            row.append(s['notif_type'])
            row.append(s['lang'])
            rows.append(row)

        file_type = REQUEST.get('file_type', 'CSV')
        if file_type == 'CSV':
            RESPONSE.setHeader('Content-Type', 'text/csv')
            RESPONSE.setHeader('Content-Disposition',
                               'attachment; filename=subscriptions.csv')
            return generate_csv(header, rows)
        if file_type == 'Excel' and self.rstk['we_provide']('Excel export'):
            RESPONSE.setHeader('Content-Type', 'application/vnd.ms-excel')
            RESPONSE.setHeader('Content-Disposition',
                               'attachment; filename=subscriptions.xls')
            return generate_excel(header, rows)
        else:
            raise ValueError('unknown file format %r' % file_type)
Example #7
0
    def download(self, REQUEST=None, RESPONSE=None):
        """returns all the answers in a csv file"""
        def stringify(value):
            if not isinstance(value, basestring):
                value = unicode(value)
            if isinstance(value, str):
                return unicode(value, 'utf-8')
            return value

        def all_stringify(row):
            return [stringify(value) for value in row]

        answers = self.getAnswers()
        widgets = self.getSortedWidgets()
        header = ['Respondent']
        for widget in widgets:
            header += [widget.title_or_id()]
            if widget.meta_type == 'Naaya Radio Matrix Widget':
                header += widget.rows
        rows = [answer.answer_values() for answer in answers]
        rows = [all_stringify(item) for item in rows]

        file_type = REQUEST.get('file_type', 'CSV')
        if file_type == 'CSV':
            RESPONSE.setHeader('Content-Type', 'text/csv')
            RESPONSE.setHeader('Content-Disposition',
                               'attachment; filename=%s.csv' % self.id)
            return generate_csv(header, rows)
        if file_type == 'Excel' and self.rstk.we_provide('Excel export'):
            RESPONSE.setHeader('Content-Type', 'application/vnd.ms-excel')
            RESPONSE.setHeader('Content-Disposition',
                               'attachment; filename=%s.xls' % self.id)
            return generate_excel(header, rows)
        else:
            raise ValueError('unknown file format %r' % file_type)
    def download_webex(self, REQUEST=None, RESPONSE=None):
        """exports the participants listing in a Webex-compatible CSV file"""

        # This will be refactored to export to Skype, Webex will be shut
        # down. Right now this method is not used.

        header = ['UUID', 'Name', 'Email', 'Company', 'JobTitle', 'URL',
                  'OffCntry', 'OffLocal', 'CellCntry', 'CellLocal', 'FaxCntry',
                  'FaxLocal', 'Address1', 'Address2', 'City', 'State/Province',
                  'Zip/Postal', 'Country', 'Time Zone', 'Language', 'Locale',
                  'UserName', 'Notes']
        rows = []
        participants = self.getAttendees()
        for participant in participants:
            part_info = self.getAttendeeInfo(participant)
            participant_info = [
                part_info['uid'], part_info['name'], part_info['email'],
                part_info['organization'], part_info['role'],
                '', part_info['phone'], '', '', '', '', '', '', '', '', '', '',
                country_from_country_code.get(part_info['country'], ''),
                '', '', '', part_info['uid'], '']
            rows.append(participant_info)

        filename = '%s_%s_%s.csv' % (self.getMeeting().getId(), self.id,
                                     datetime.now().strftime(
                                     "%Y-%m-%d_%H-%M-%S"))
        RESPONSE.setHeader('Content-Type', 'text/csv')
        RESPONSE.setHeader('Content-Disposition', 'attachment; filename=%s'
                           % filename)
        return generate_csv(header, rows)