Example #1
0
    def get_extra_context(self, request):
        """
        Returns a context containing the following useful variables:

        * ``verbose_name``
        * ``verbose_name_plural``
        * ``list_url``
        * ``add_url``
        * ``base_template``
        * ``adding_allowed``
        * ``search_form`` (if ``search_form_everywhere = True``)
        """
        info = app_model_label(self.model)

        return {
            'verbose_name': self.model._meta.verbose_name,
            'verbose_name_plural': self.model._meta.verbose_name_plural,
            'list_url': tryreverse('%s_%s_list' % info),
            'add_url': tryreverse('%s_%s_add' % info),
            'base_template': self.base_template,

            'adding_allowed': self.adding_allowed(request),

            'search_form': (
                self.search_form(request.GET, request=request)
                if self.search_form_everywhere else None),

            'request': request,  # Something changed with Django 1.10's
                                 # context processors...
        }
Example #2
0
    def get_extra_context(self, request):
        """
        Returns a context containing the following useful variables:

        * ``verbose_name``
        * ``verbose_name_plural``
        * ``list_url``
        * ``add_url``
        * ``base_template``
        * ``adding_allowed``
        * ``search_form`` (if ``search_form_everywhere = True``)
        """
        info = app_model_label(self.model)

        return {
            'verbose_name': self.model._meta.verbose_name,
            'verbose_name_plural': self.model._meta.verbose_name_plural,
            'list_url': tryreverse('%s_%s_list' % info),
            'add_url': tryreverse('%s_%s_add' % info),
            'base_template': self.base_template,

            'adding_allowed': self.adding_allowed(request),

            'search_form': (
                self.search_form(request.GET, request=request)
                if self.search_form_everywhere else None),

            'request': request,  # Something changed with Django 1.10's
                                 # context processors...
        }
Example #3
0
    def get_extra_context(self, request):
        """
        Returns a context containing the following useful variables:

        * ``verbose_name``
        * ``verbose_name_plural``
        * ``list_url``
        * ``add_url``
        * ``base_template``
        * ``adding_allowed``
        * ``search_form`` (if ``search_form_everywhere = True``)
        """
        info = self.model._meta.app_label, self.model._meta.module_name

        return {
            'verbose_name': self.model._meta.verbose_name,
            'verbose_name_plural': self.model._meta.verbose_name_plural,
            'list_url': tryreverse('%s_%s_list' % info),
            'add_url': tryreverse('%s_%s_add' % info),
            'base_template': self.base_template,

            'adding_allowed': self.adding_allowed(request),

            'search_form': (self.search_form(request.GET, request=request)
                if self.search_form_everywhere else None),
        }
Example #4
0
    def handle_batch_form(self, request, ctx, queryset):
        """
        May optionally return a HttpResponse which is directly returned to the
        browser
        """

        if not self.batch_form:
            return

        form = self.batch_form(request, queryset)
        ctx['batch_form'] = form

        if form.should_process():
            result = form.process()

            if isinstance(result, HttpResponse):
                return result

            elif hasattr(result, '__iter__'):
                messages.success(
                    request,
                    _('Processed the following items: <br>\n %s') % (
                        '<br>\n '.join(
                            force_text(item) for item in result)))

            elif result is not None:
                # Not None, but cannot make sense of it either.
                raise TypeError('Return value %r of %s.process() invalid.' % (
                    result,
                    form.__class__.__name__,
                ))

            url = tryreverse('%s_%s_list' % app_model_label(self.model))
            return HttpResponseRedirect(url if url else '.')
Example #5
0
 def response_delete(self, request, instance):
     """
     Return the response when an object has been successfully deleted
     """
     self.add_message(request, 'object_deleted')
     url = tryreverse('%s_%s_list' % app_model_label(self.model))
     return HttpResponseRedirect(url if url else '../../')
Example #6
0
 def response_adding_denied(self, request):
     """
     Return the response when adding instances is denied
     """
     self.add_message(request, 'adding_denied')
     url = tryreverse('%s_%s_list' % app_model_label(self.model))
     return HttpResponseRedirect(url if url else '../../')
Example #7
0
    def handle_batch_form(self, request, ctx, queryset):
        """
        May optionally return a HttpResponse which is directly returned to the
        browser
        """

        if not self.batch_form:
            return

        form = self.batch_form(request, queryset)
        ctx['batch_form'] = form

        if form.should_process():
            result = form.process()

            if isinstance(result, HttpResponse):
                return result

            elif hasattr(result, '__iter__'):
                messages.success(
                    request,
                    _('Processed the following items: <br>\n %s') % (
                        '<br>\n '.join(
                            force_text(item) for item in result)))

            elif result is not None:
                # Not None, but cannot make sense of it either.
                raise TypeError('Return value %r of %s.process() invalid.' % (
                    result,
                    form.__class__.__name__,
                ))

            url = tryreverse('%s_%s_list' % app_model_label(self.model))
            return HttpResponseRedirect(url if url else '.')
Example #8
0
 def response_delete(self, request, instance):
     """
     Return the response when an object has been successfully deleted
     """
     self.add_message(request, 'object_deleted')
     url = tryreverse('%s_%s_list' % app_model_label(self.model))
     return HttpResponseRedirect(url if url else '../../')
Example #9
0
 def response_adding_denied(self, request):
     """
     Return the response when adding instances is denied
     """
     self.add_message(request, 'adding_denied')
     url = tryreverse('%s_%s_list' % app_model_label(self.model))
     return HttpResponseRedirect(url if url else '../../')
Example #10
0
 def response_delete(self, request, instance):
     """
     Return the response when an object has been successfully deleted
     """
     self.add_message(request, 'object_deleted')
     info = self.model._meta.app_label, self.model._meta.module_name
     url = tryreverse('%s_%s_list' % info)
     return HttpResponseRedirect(url if url else '../../')
Example #11
0
 def response_adding_denied(self, request):
     """
     Return the response when adding instances is denied
     """
     self.add_message(request, 'adding_denied')
     info = self.model._meta.app_label, self.model._meta.module_name
     url = tryreverse('%s_%s_list' % info)
     return HttpResponseRedirect(url if url else '../../')
Example #12
0
 def test_tryreverse(self):
     self.assertEqual(tryreverse("asdf42"), None)
     self.assertEqual(tryreverse("admin:index"), "/admin/")
Example #13
0
 def test_tryreverse(self):
     self.assertEqual(tryreverse('asdf42'), None)
     self.assertEqual(tryreverse('admin:index'), '/admin/')
Example #14
0
 def test_tryreverse(self):
     self.assertEqual(tryreverse('asdf42'), None)
     self.assertEqual(tryreverse('admin:index'), '/admin/')