コード例 #1
0
ファイル: list.py プロジェクト: cbbing/djproject
    def get_context(self):
        """
        Prepare the context for templates.
        """
        self.title = _('%s List') % force_str(self.opts.verbose_name)

        model_fields = [(f, f.name in self.list_display, self.get_check_field_url(f))
                        for f in (list(self.opts.fields) + self.get_model_method_fields()) if f.name not in self.list_exclude]

        new_context = {
            'model_name': force_str(self.opts.verbose_name_plural),
            'title': self.title,
            'cl': self,
            'model_fields': model_fields,
            'clean_select_field_url': self.get_query_string(remove=[COL_LIST_VAR]),
            'has_add_permission': self.has_add_permission(),
            'app_label': self.app_label,
            'brand_name': self.opts.verbose_name_plural,
            'brand_icon': self.get_model_icon(self.model),
            'add_url': self.model_admin_url('add'),
            'result_headers': self.result_headers(),
            'results': self.results()
        }
        context = super(ListAdminView, self).get_context()
        context.update(new_context)
        return context
コード例 #2
0
ファイル: edit.py プロジェクト: cbbing/djproject
    def post_response(self):
        """
        Determines the HttpResponse for the add_view stage.
        """
        request = self.request

        msg = _(
            'The %(name)s "%(obj)s" was added successfully.') % {'name': force_str(self.opts.verbose_name),
                                                                 'obj': "<a class='alert-link' href='%s'>%s</a>" % (self.model_admin_url('change', self.new_obj._get_pk_val()), force_str(self.new_obj))}

        if "_continue" in request.REQUEST:
            self.message_user(
                msg + ' ' + _("You may edit it again below."), 'success')
            return self.model_admin_url('change', self.new_obj._get_pk_val())

        if "_addanother" in request.REQUEST:
            self.message_user(msg + ' ' + (_("You may add another %s below.") % force_str(self.opts.verbose_name)), 'success')
            return request.path
        else:
            self.message_user(msg, 'success')

            # Figure out where to redirect. If the user has change permission,
            # redirect to the change-list page for this object. Otherwise,
            # redirect to the admin index.
            if "_redirect" in request.REQUEST:
                return request.REQUEST["_redirect"]
            elif self.has_view_permission():
                return self.model_admin_url('changelist')
            else:
                return self.get_admin_url('index')
コード例 #3
0
    def post_response(self):

        self.message_user(_('The %(name)s "%(obj)s" was deleted successfully.') %
                          {'name': force_str(self.opts.verbose_name), 'obj': force_str(self.obj)}, 'success')

        if not self.has_view_permission():
            return self.get_admin_url('index')
        return self.model_admin_url('changelist')
コード例 #4
0
ファイル: dashboard.py プロジェクト: Brandhor/django-xadmin
 def render(self, name, value, attrs=None):
     if value is None:
         value = ''
     final_attrs = self.build_attrs(attrs, name=name)
     final_attrs['class'] = 'nav nav-pills nav-stacked'
     output = [u'<ul%s>' % flatatt(final_attrs)]
     options = self.render_options(force_str(value), final_attrs['id'])
     if options:
         output.append(options)
     output.append(u'</ul>')
     output.append('<input type="hidden" id="%s_input" name="%s" value="%s"/>' %
                  (final_attrs['id'], name, force_str(value)))
     return mark_safe(u'\n'.join(output))
コード例 #5
0
 def render(self, name, value, attrs=None):
     if value is None:
         value = ''
     final_attrs = self.build_attrs(attrs, name=name)
     final_attrs['class'] = 'nav nav-pills nav-stacked'
     output = [u'<ul%s>' % flatatt(final_attrs)]
     options = self.render_options(force_str(value), final_attrs['id'])
     if options:
         output.append(options)
     output.append(u'</ul>')
     output.append(
         '<input type="hidden" id="%s_input" name="%s" value="%s"/>' %
         (final_attrs['id'], name, force_str(value)))
     return mark_safe(u'\n'.join(output))
コード例 #6
0
ファイル: edit.py プロジェクト: cbbing/djproject
 def get_context(self):
     new_context = {
         'title': _('Add %s') % force_str(self.opts.verbose_name),
     }
     context = super(CreateAdminView, self).get_context()
     context.update(new_context)
     return context
コード例 #7
0
ファイル: detail.py プロジェクト: Brandhor/django-xadmin
 def get_breadcrumb(self):
     bcs = super(DetailAdminView, self).get_breadcrumb()
     item = {'title': force_str(self.obj)}
     if self.has_view_permission():
         item['url'] = self.model_admin_url('detail', self.obj.pk)
     bcs.append(item)
     return bcs
コード例 #8
0
ファイル: export.py プロジェクト: cbbing/djproject
    def _get_datas(self, context):
        rows = context['results']

        new_rows = [[self._format_value(o) for o in
            filter(lambda c:getattr(c, 'export', False), r.cells)] for r in rows]
        new_rows.insert(0, [force_str(c.text) for c in context['result_headers'].cells if c.export])
        return new_rows
コード例 #9
0
ファイル: export.py プロジェクト: cbbing/djproject
    def _get_objects(self, context):
        headers = [c for c in context['result_headers'].cells if c.export]
        rows = context['results']

        return [dict([
            (force_str(headers[i].text), self._format_value(o)) for i, o in
            enumerate(filter(lambda c:getattr(c, 'export', False), r.cells))]) for r in rows]
コード例 #10
0
ファイル: detail.py プロジェクト: zj15243885020/Jcrontab
 def get_breadcrumb(self):
     bcs = super(DetailAdminView, self).get_breadcrumb()
     item = {'title': force_str(self.obj)}
     if self.has_view_permission():
         item['url'] = self.model_admin_url('detail', self.obj.pk)
     bcs.append(item)
     return bcs
コード例 #11
0
ファイル: edit.py プロジェクト: zj15243885020/Jcrontab
 def get_context(self):
     new_context = {
         'title': _('Add %s') % force_str(self.opts.verbose_name),
     }
     context = super(CreateAdminView, self).get_context()
     context.update(new_context)
     return context
コード例 #12
0
ファイル: edit.py プロジェクト: zj15243885020/Jcrontab
 def get_breadcrumb(self):
     bcs = super(ModelFormAdminView, self).get_breadcrumb()
     item = {'title': _('Add %s') % force_str(self.opts.verbose_name)}
     if self.has_add_permission():
         item['url'] = self.model_admin_url('add')
     bcs.append(item)
     return bcs
コード例 #13
0
ファイル: edit.py プロジェクト: cbbing/djproject
 def get_breadcrumb(self):
     bcs = super(ModelFormAdminView, self).get_breadcrumb()
     item = {'title': _('Add %s') % force_str(self.opts.verbose_name)}
     if self.has_add_permission():
         item['url'] = self.model_admin_url('add')
     bcs.append(item)
     return bcs
コード例 #14
0
ファイル: list.py プロジェクト: cbbing/djproject
 def label(self):
     text = mark_safe(
         self.text) if self.allow_tags else conditional_escape(self.text)
     if force_str(text) == '':
         text = mark_safe('&nbsp;')
     for wrap in self.wraps:
         text = mark_safe(wrap % text)
     return text
コード例 #15
0
ファイル: edit.py プロジェクト: cbbing/djproject
 def get_context(self):
     new_context = {
         'title': _('Change %s') % force_str(self.org_obj),
         'object_id': str(self.org_obj.pk),
     }
     context = super(UpdateAdminView, self).get_context()
     context.update(new_context)
     return context
コード例 #16
0
ファイル: edit.py プロジェクト: zj15243885020/Jcrontab
 def get_context(self):
     new_context = {
         'title': _('Change %s') % force_str(self.org_obj),
         'object_id': str(self.org_obj.pk),
     }
     context = super(UpdateAdminView, self).get_context()
     context.update(new_context)
     return context
コード例 #17
0
ファイル: detail.py プロジェクト: Brandhor/django-xadmin
 def val(self):
     text = mark_safe(
         self.text) if self.allow_tags else conditional_escape(self.text)
     if force_str(text) == '' or text == 'None' or text == EMPTY_CHANGELIST_VALUE:
         text = mark_safe(
             '<span class="text-muted">%s</span>' % EMPTY_CHANGELIST_VALUE)
     for wrap in self.wraps:
         text = mark_safe(wrap % text)
     return text
コード例 #18
0
ファイル: dashboard.py プロジェクト: Brandhor/django-xadmin
    def init_request(self, object_id, *args, **kwargs):
        self.obj = self.get_object(unquote(object_id))

        if not self.has_view_permission(self.obj):
            raise PermissionDenied

        if self.obj is None:
            raise Http404(_('%(name)s object with primary key %(key)r does not exist.') %
                          {'name': force_str(self.opts.verbose_name), 'key': escape(object_id)})
コード例 #19
0
ファイル: edit.py プロジェクト: zj15243885020/Jcrontab
    def get_breadcrumb(self):
        bcs = super(ModelFormAdminView, self).get_breadcrumb()

        item = {'title': force_str(self.org_obj)}
        if self.has_change_permission():
            item['url'] = self.model_admin_url('change', self.org_obj.pk)
        bcs.append(item)

        return bcs
コード例 #20
0
ファイル: edit.py プロジェクト: cbbing/djproject
    def get_breadcrumb(self):
        bcs = super(ModelFormAdminView, self).get_breadcrumb()

        item = {'title': force_str(self.org_obj)}
        if self.has_change_permission():
            item['url'] = self.model_admin_url('change', self.org_obj.pk)
        bcs.append(item)

        return bcs
コード例 #21
0
ファイル: export.py プロジェクト: zj15243885020/Jcrontab
    def _get_objects(self, context):
        headers = [c for c in context['result_headers'].cells if c.export]
        rows = context['results']

        return [
            dict([(force_str(headers[i].text), self._format_value(o))
                  for i, o in enumerate(
                      filter(lambda c: getattr(c, 'export', False), r.cells))])
            for r in rows
        ]
コード例 #22
0
ファイル: detail.py プロジェクト: zj15243885020/Jcrontab
 def val(self):
     text = mark_safe(self.text) if self.allow_tags else conditional_escape(
         self.text)
     if force_str(
             text
     ) == '' or text == 'None' or text == EMPTY_CHANGELIST_VALUE:
         text = mark_safe('<span class="text-muted">%s</span>' %
                          EMPTY_CHANGELIST_VALUE)
     for wrap in self.wraps:
         text = mark_safe(wrap % text)
     return text
コード例 #23
0
ファイル: edit.py プロジェクト: zj15243885020/Jcrontab
    def post_response(self):
        """
        Determines the HttpResponse for the change_view stage.
        """
        opts = self.new_obj._meta
        obj = self.new_obj
        request = self.request
        verbose_name = opts.verbose_name

        pk_value = obj._get_pk_val()

        msg = _('The %(name)s "%(obj)s" was changed successfully.') % {
            'name': force_str(verbose_name),
            'obj': force_str(obj)
        }
        if "_continue" in request.REQUEST:
            self.message_user(msg + ' ' + _("You may edit it again below."),
                              'success')
            return request.path
        elif "_addanother" in request.REQUEST:
            self.message_user(
                msg + ' ' +
                (_("You may add another %s below.") % force_str(verbose_name)),
                'success')
            return self.model_admin_url('add')
        else:
            self.message_user(msg, 'success')
            # Figure out where to redirect. If the user has change permission,
            # redirect to the change-list page for this object. Otherwise,
            # redirect to the admin index.
            if "_redirect" in request.REQUEST:
                return request.REQUEST["_redirect"]
            elif self.has_view_permission():
                change_list_url = self.model_admin_url('changelist')
                if 'LIST_QUERY' in self.request.session \
                and self.request.session['LIST_QUERY'][0] == self.model_info:
                    change_list_url += '?' + self.request.session[
                        'LIST_QUERY'][1]
                return change_list_url
            else:
                return self.get_admin_url('index')
コード例 #24
0
    def get_breadcrumb(self):
        bcs = super(DeleteAdminView, self).get_breadcrumb()
        bcs.append({
            'title': force_str(self.obj),
            'url': self.get_object_url(self.obj)
        })
        item = {'title': _('Delete')}
        if self.has_delete_permission():
            item['url'] = self.model_admin_url('delete', self.obj.pk)
        bcs.append(item)

        return bcs
コード例 #25
0
ファイル: edit.py プロジェクト: cbbing/djproject
    def init_request(self, object_id, *args, **kwargs):
        self.org_obj = self.get_object(unquote(object_id))

        if not self.has_change_permission(self.org_obj):
            raise PermissionDenied

        if self.org_obj is None:
            raise Http404(_('%(name)s object with primary key %(key)r does not exist.') %
                          {'name': force_str(self.opts.verbose_name), 'key': escape(object_id)})

        # comm method for both get and post
        self.prepare_form()
コード例 #26
0
ファイル: editable.py プロジェクト: Brandhor/django-xadmin
    def init_request(self, object_id, *args, **kwargs):
        self.org_obj = self.get_object(unquote(object_id))

        # For list view get new field display html
        self.pk_attname = self.opts.pk.attname

        if not self.has_change_permission(self.org_obj):
            raise PermissionDenied

        if self.org_obj is None:
            raise Http404(_('%(name)s object with primary key %(key)r does not exist.') %
                          {'name': force_str(self.opts.verbose_name), 'key': escape(object_id)})
コード例 #27
0
ファイル: export.py プロジェクト: zj15243885020/Jcrontab
    def _get_datas(self, context):
        rows = context['results']

        new_rows = [[
            self._format_value(o)
            for o in filter(lambda c: getattr(c, 'export', False), r.cells)
        ] for r in rows]
        new_rows.insert(0, [
            force_str(c.text)
            for c in context['result_headers'].cells if c.export
        ])
        return new_rows
コード例 #28
0
    def init_request(self, object_id, *args, **kwargs):
        self.obj = self.get_object(unquote(object_id))

        if not self.has_view_permission(self.obj):
            raise PermissionDenied

        if self.obj is None:
            raise Http404(
                _('%(name)s object with primary key %(key)r does not exist.') %
                {
                    'name': force_str(self.opts.verbose_name),
                    'key': escape(object_id)
                })
コード例 #29
0
ファイル: detail.py プロジェクト: zj15243885020/Jcrontab
    def get_context(self):
        new_context = {
            'title': _('%s Detail') % force_str(self.opts.verbose_name),
            'form': self.form_obj,
            'object': self.obj,
            'has_change_permission': self.has_change_permission(self.obj),
            'has_delete_permission': self.has_delete_permission(self.obj),
            'content_type_id':
            ContentType.objects.get_for_model(self.model).id,
        }

        context = super(DetailAdminView, self).get_context()
        context.update(new_context)
        return context
コード例 #30
0
ファイル: edit.py プロジェクト: cbbing/djproject
    def post_response(self):
        """
        Determines the HttpResponse for the change_view stage.
        """
        opts = self.new_obj._meta
        obj = self.new_obj
        request = self.request
        verbose_name = opts.verbose_name

        pk_value = obj._get_pk_val()

        msg = _('The %(name)s "%(obj)s" was changed successfully.') % {'name':
                                                                       force_str(verbose_name), 'obj': force_str(obj)}
        if "_continue" in request.REQUEST:
            self.message_user(
                msg + ' ' + _("You may edit it again below."), 'success')
            return request.path
        elif "_addanother" in request.REQUEST:
            self.message_user(msg + ' ' + (_("You may add another %s below.")
                              % force_str(verbose_name)), 'success')
            return self.model_admin_url('add')
        else:
            self.message_user(msg, 'success')
            # Figure out where to redirect. If the user has change permission,
            # redirect to the change-list page for this object. Otherwise,
            # redirect to the admin index.
            if "_redirect" in request.REQUEST:
                return request.REQUEST["_redirect"]
            elif self.has_view_permission():
                change_list_url = self.model_admin_url('changelist')
                if 'LIST_QUERY' in self.request.session \
                and self.request.session['LIST_QUERY'][0] == self.model_info:
                    change_list_url += '?' + self.request.session['LIST_QUERY'][1]
                return change_list_url
            else:
                return self.get_admin_url('index')
コード例 #31
0
ファイル: edit.py プロジェクト: zj15243885020/Jcrontab
    def post_response(self):
        """
        Determines the HttpResponse for the add_view stage.
        """
        request = self.request

        msg = _('The %(name)s "%(obj)s" was added successfully.') % {
            'name':
            force_str(self.opts.verbose_name),
            'obj':
            "<a class='alert-link' href='%s'>%s</a>" % (self.model_admin_url(
                'change', self.new_obj._get_pk_val()), force_str(self.new_obj))
        }

        if "_continue" in request.REQUEST:
            self.message_user(msg + ' ' + _("You may edit it again below."),
                              'success')
            return self.model_admin_url('change', self.new_obj._get_pk_val())

        if "_addanother" in request.REQUEST:
            self.message_user(
                msg + ' ' + (_("You may add another %s below.") %
                             force_str(self.opts.verbose_name)), 'success')
            return request.path
        else:
            self.message_user(msg, 'success')

            # Figure out where to redirect. If the user has change permission,
            # redirect to the change-list page for this object. Otherwise,
            # redirect to the admin index.
            if "_redirect" in request.REQUEST:
                return request.REQUEST["_redirect"]
            elif self.has_view_permission():
                return self.model_admin_url('changelist')
            else:
                return self.get_admin_url('index')
コード例 #32
0
ファイル: export.py プロジェクト: zj15243885020/Jcrontab
    def get_xlsx_export(self, context):
        datas = self._get_datas(context)
        output = StringIO()
        export_header = (self.request.GET.get('export_xlsx_header',
                                              'off') == 'on')

        model_name = self.opts.verbose_name
        book = xlsxwriter.Workbook(output)
        sheet = book.add_worksheet(u"%s %s" %
                                   (_(u'Sheet'), force_str(model_name)))
        styles = {
            'datetime':
            book.add_format({'num_format': 'yyyy-mm-dd hh:mm:ss'}),
            'date':
            book.add_format({'num_format': 'yyyy-mm-dd'}),
            'time':
            book.add_format({'num_format': 'hh:mm:ss'}),
            'header':
            book.add_format({
                'font': 'name Times New Roman',
                'color': 'red',
                'bold': 'on',
                'num_format': '#,##0.00'
            }),
            'default':
            book.add_format()
        }

        if not export_header:
            datas = datas[1:]
        for rowx, row in enumerate(datas):
            for colx, value in enumerate(row):
                if export_header and rowx == 0:
                    cell_style = styles['header']
                else:
                    if isinstance(value, datetime.datetime):
                        cell_style = styles['datetime']
                    elif isinstance(value, datetime.date):
                        cell_style = styles['date']
                    elif isinstance(value, datetime.time):
                        cell_style = styles['time']
                    else:
                        cell_style = styles['default']
                sheet.write(rowx, colx, value, cell_style)
        book.close()

        output.seek(0)
        return output.getvalue()
コード例 #33
0
ファイル: detail.py プロジェクト: Brandhor/django-xadmin
    def get_context(self):
        new_context = {
            'title': _('%s Detail') % force_str(self.opts.verbose_name),
            'form': self.form_obj,

            'object': self.obj,

            'has_change_permission': self.has_change_permission(self.obj),
            'has_delete_permission': self.has_delete_permission(self.obj),

            'content_type_id': ContentType.objects.get_for_model(self.model).id,
        }

        context = super(DetailAdminView, self).get_context()
        context.update(new_context)
        return context
コード例 #34
0
    def init_request(self, object_id, *args, **kwargs):
        self.org_obj = self.get_object(unquote(object_id))

        # For list view get new field display html
        self.pk_attname = self.opts.pk.attname

        if not self.has_change_permission(self.org_obj):
            raise PermissionDenied

        if self.org_obj is None:
            raise Http404(
                _('%(name)s object with primary key %(key)r does not exist.') %
                {
                    'name': force_str(self.opts.verbose_name),
                    'key': escape(object_id)
                })
コード例 #35
0
ファイル: edit.py プロジェクト: zj15243885020/Jcrontab
    def init_request(self, object_id, *args, **kwargs):
        self.org_obj = self.get_object(unquote(object_id))

        if not self.has_change_permission(self.org_obj):
            raise PermissionDenied

        if self.org_obj is None:
            raise Http404(
                _('%(name)s object with primary key %(key)r does not exist.') %
                {
                    'name': force_str(self.opts.verbose_name),
                    'key': escape(object_id)
                })

        # comm method for both get and post
        self.prepare_form()
コード例 #36
0
    def get_context(self):
        if self.perms_needed or self.protected:
            title = _("Cannot delete %(name)s") % {"name":
                                                   force_str(self.opts.verbose_name)}
        else:
            title = _("Are you sure?")

        new_context = {
            "title": title,
            "object": self.obj,
            "deleted_objects": self.deleted_objects,
            "model_count": tuple(dict(self.model_count).items()),
            "perms_lacking": self.perms_needed,
            "protected": self.protected,
        }
        context = super(DeleteAdminView, self).get_context()
        context.update(new_context)
        return context
コード例 #37
0
ファイル: export.py プロジェクト: zj15243885020/Jcrontab
    def get_xls_export(self, context):
        datas = self._get_datas(context)
        output = StringIO()
        export_header = (self.request.GET.get('export_xls_header',
                                              'off') == 'on')

        model_name = self.opts.verbose_name
        book = xlwt.Workbook(encoding='utf8')
        sheet = book.add_sheet(u"%s %s" % (_(u'Sheet'), force_str(model_name)))
        styles = {
            'datetime':
            xlwt.easyxf(num_format_str='yyyy-mm-dd hh:mm:ss'),
            'date':
            xlwt.easyxf(num_format_str='yyyy-mm-dd'),
            'time':
            xlwt.easyxf(num_format_str='hh:mm:ss'),
            'header':
            xlwt.easyxf('font: name Times New Roman, color-index red, bold on',
                        num_format_str='#,##0.00'),
            'default':
            xlwt.Style.default_style
        }

        if not export_header:
            datas = datas[1:]
        for rowx, row in enumerate(datas):
            for colx, value in enumerate(row):
                if export_header and rowx == 0:
                    cell_style = styles['header']
                else:
                    if isinstance(value, datetime.datetime):
                        cell_style = styles['datetime']
                    elif isinstance(value, datetime.date):
                        cell_style = styles['date']
                    elif isinstance(value, datetime.time):
                        cell_style = styles['time']
                    else:
                        cell_style = styles['default']
                sheet.write(rowx, colx, value, style=cell_style)
        book.save(output)

        output.seek(0)
        return output.getvalue()
コード例 #38
0
ファイル: export.py プロジェクト: cbbing/djproject
    def get_xlsx_export(self, context):
        datas = self._get_datas(context)
        output = StringIO.StringIO()
        export_header = (
            self.request.GET.get('export_xlsx_header', 'off') == 'on')

        model_name = self.opts.verbose_name
        book = xlsxwriter.Workbook(output)
        sheet = book.add_worksheet(
            u"%s %s" % (_(u'Sheet'), force_str(model_name)))
        styles = {'datetime': book.add_format({'num_format': 'yyyy-mm-dd hh:mm:ss'}),
                  'date': book.add_format({'num_format': 'yyyy-mm-dd'}),
                  'time': book.add_format({'num_format': 'hh:mm:ss'}),
                  'header': book.add_format({'font': 'name Times New Roman', 'color': 'red', 'bold': 'on', 'num_format': '#,##0.00'}),
                  'default': book.add_format()}

        if not export_header:
            datas = datas[1:]
        for rowx, row in enumerate(datas):
            for colx, value in enumerate(row):
                if export_header and rowx == 0:
                    cell_style = styles['header']
                else:
                    if isinstance(value, datetime.datetime):
                        cell_style = styles['datetime']
                    elif isinstance(value, datetime.date):
                        cell_style = styles['date']
                    elif isinstance(value, datetime.time):
                        cell_style = styles['time']
                    else:
                        cell_style = styles['default']
                sheet.write(rowx, colx, value, cell_style)
        book.close()

        output.seek(0)
        return output.getvalue()
コード例 #39
0
ファイル: export.py プロジェクト: cbbing/djproject
    def get_xls_export(self, context):
        datas = self._get_datas(context)
        output = StringIO.StringIO()
        export_header = (
            self.request.GET.get('export_xls_header', 'off') == 'on')

        model_name = self.opts.verbose_name
        book = xlwt.Workbook(encoding='utf8')
        sheet = book.add_sheet(
            u"%s %s" % (_(u'Sheet'), force_str(model_name)))
        styles = {'datetime': xlwt.easyxf(num_format_str='yyyy-mm-dd hh:mm:ss'),
                  'date': xlwt.easyxf(num_format_str='yyyy-mm-dd'),
                  'time': xlwt.easyxf(num_format_str='hh:mm:ss'),
                  'header': xlwt.easyxf('font: name Times New Roman, color-index red, bold on', num_format_str='#,##0.00'),
                  'default': xlwt.Style.default_style}

        if not export_header:
            datas = datas[1:]
        for rowx, row in enumerate(datas):
            for colx, value in enumerate(row):
                if export_header and rowx == 0:
                    cell_style = styles['header']
                else:
                    if isinstance(value, datetime.datetime):
                        cell_style = styles['datetime']
                    elif isinstance(value, datetime.date):
                        cell_style = styles['date']
                    elif isinstance(value, datetime.time):
                        cell_style = styles['time']
                    else:
                        cell_style = styles['default']
                sheet.write(rowx, colx, value, style=cell_style)
        book.save(output)

        output.seek(0)
        return output.getvalue()
コード例 #40
0
ファイル: dashboard.py プロジェクト: Brandhor/django-xadmin
 def get_title(self):
     return self.title % force_str(self.obj)
コード例 #41
0
    def init_request(self, object_id, *args, **kwargs):
        "The 'delete' admin view for this model."
        self.obj = self.get_object(unquote(object_id))

        if not self.has_delete_permission(self.obj):
            raise PermissionDenied

        if self.obj is None:
            raise Http404(_('%(name)s object with primary key %(key)r does not exist.') % {'name': force_str(self.opts.verbose_name), 'key': escape(object_id)})

        using = router.db_for_write(self.model)

        # Populate deleted_objects, a data structure of all related objects that
        # will also be deleted.
        (self.deleted_objects, self.model_count, self.perms_needed, self.protected) = get_deleted_objects(
            [self.obj], self.opts, self.request.user, self.admin_site, using)
コード例 #42
0
 def get_title(self):
     return self.title % force_str(self.obj)