コード例 #1
0
ファイル: tests_admin.py プロジェクト: mikewolfd/django-gm2m
class AdminTests(base.TestCase):
    def setUp(self):
        self.site = AdminSite()
        self.model_admin = ModelAdmin(self.models.Links, self.site)
        self.links = self.models.Links.objects.create()

    def test_formfield_warning(self):
        with self.assertRaises(FutureWarning), warnings.catch_warnings():
            warnings.filterwarnings('error', category=FutureWarning)
            self.model_admin.get_form(MockRequest(), self.links)()

    def test_admin(self):
        form = self.model_admin.get_form(MockRequest(),
                                         self.links)(instance=self.links,
                                                     data={
                                                         'related_objects': ''
                                                     })
        self.assertTrue(form.is_valid())

    def test_submit_form(self):
        self.links.related_objects = [
            self.models.Project.objects.create(),
            self.models.Task.objects.create()
        ]

        form = self.model_admin.get_form(MockRequest(),
                                         self.links)(instance=self.links,
                                                     data={
                                                         'related_objects': ''
                                                     })
        form.save()

        self.assertEqual(self.links.related_objects.all().count(), 2)
コード例 #2
0
ファイル: admin.py プロジェクト: keeran6/check-logist
 def get_form(self, request, obj=None, **kwargs):
     if request.method == 'POST' and obj is None:
         try:
             request.POST['dispatcher'] = Dispatcher.objects.get(name__iexact=u' '.join((request.user.last_name, request.user.first_name)))
         except:
             pass
     return ModelAdmin.get_form(self, request, obj=obj, **kwargs)
コード例 #3
0
ファイル: tests.py プロジェクト: nwp90/djorm-ext-pgarray
    def test_admin_forms(self):
        site = AdminSite()
        model_admin = ModelAdmin(IntModel, site)
        form_clazz = model_admin.get_form(None)
        form_instance = form_clazz()

        try:
            form_instance.as_table()
        except TypeError:
            self.fail('HTML Rendering of the form caused a TypeError')
コード例 #4
0
    def test_admin_forms(self):
        site = AdminSite()
        model_admin = ModelAdmin(IntModel, site)
        form_clazz = model_admin.get_form(None)
        form_instance = form_clazz()

        try:
            form_instance.as_table()
        except TypeError:
            self.fail('HTML Rendering of the form caused a TypeError')
コード例 #5
0
 def app_settings(self, request, app_name):
     model_classes = registered_settings.get(app_name)
     if not model_classes:
         raise Http404
     forms = []
     fieldsets = []
     model_admin = ModelAdmin(Root, self)
     for model_name, model in model_classes.items():
         instance = getattr(settings, '%s_%s' % (app_name, model_name))
         model_admin = self.registered_settings.get(model)
         if not model_admin:
             model_admin = ModelAdmin(model, self)
         form_class = model_admin.get_form(request, instance)
         form = form_class(
             prefix=model_name,
             data=request.POST or None,
             instance=instance
         )
         forms.append(form)
         meta = getattr(model, '_meta')
         name = '%s %s' % (app_name.title(), meta.verbose_name)
         readonly_fields = model_admin.readonly_fields
         fields = list(form.fields.keys()) + list(readonly_fields)
         fs = Fieldset(form, name, readonly_fields, fields)
         fieldsets.append(fs)
     # list comprehension to evaluate all forms
     if all([form.is_valid() for form in forms]):
         for form in forms:
             form.save()
         msg = '%s settings have been saved.' % app_name.title()
         messages.info(request, msg)
         if '_save' in request.POST:
             url = reverse('admin:settings', current_app=self.name)
             return redirect(url)
         return redirect(request.get_full_path())
     context = {
         'app_name': app_name.title(),
         'forms': forms,
         'fieldsets': fieldsets,
         'opts': FakeOpts(),
         'change': True,
         'is_popup': False,
         'save_as': False,
         'has_add_permission': False,
         'has_delete_permission': False,
         'has_change_permission': True,
         'media': model_admin.media,
     }
     return TemplateResponse(
         request,
         'admin/dbsettings/app_settings.html',
         context,
         current_app=self.name
     )
コード例 #6
0
    def get_form(self, request, obj=None, **kwargs):
        """
        Push request into the ModelForm. Requires the form to override __init__
        and remove request from the kwargs.
        See: http://stackoverflow.com/questions/1057252/how-do-i-access-the-request-object-or-any-other-variable-in-a-forms-clean-met
        """
        ModelForm = ModelAdmin.get_form(self, request, obj, **kwargs)

        class ModelFormWithRequestWrapper(ModelForm):
            """class wrapping actual model form class to capture request"""
            def __new__(cls, *args, **kwargs):
                kwargs['request'] = request
                return ModelForm(*args, **kwargs)

        return ModelFormWithRequestWrapper
コード例 #7
0
ファイル: adminBase.py プロジェクト: graik/rotmic
    def get_form(self, request, obj=None, **kwargs):
        """
        Push request into the ModelForm. Requires the form to override __init__
        and remove request from the kwargs.
        See: http://stackoverflow.com/questions/1057252/how-do-i-access-the-request-object-or-any-other-variable-in-a-forms-clean-met
        """
        ModelForm = ModelAdmin.get_form(self, request, obj, **kwargs)

        class ModelFormWithRequestWrapper(ModelForm):
            """class wrapping actual model form class to capture request"""
            def __new__(cls, *args, **kwargs):
                kwargs['request'] = request
                return ModelForm(*args, **kwargs)

        return ModelFormWithRequestWrapper
コード例 #8
0
    def test_confirm_email(self):
        ecla_admin = ModelAdmin(EmailConfirmation, self.site)
        ecla_form = ecla_admin.get_form(request)

        self.assertIn('email_field_name', ecla_form.base_fields.keys())
        self.assertIn('email', ecla_form.base_fields.keys())
コード例 #9
0
 def test_default_fields(self):
     ma = ModelAdmin(Authors, self.site)
     self.assertEqual(ma.get_fields(self.request),
                      ["description", "social", "user_id"])
     self.assertEqual(list(ma.get_form(self.request).base_fields),
                      ["description", "social", "user_id"])
コード例 #10
0
    def test_confirm_email(self):
        ecla_admin = ModelAdmin(EmailConfirmation, self.site)
        ecla_form = ecla_admin.get_form(request)

        self.assertIn('email_field_name', ecla_form.base_fields.keys())
        self.assertIn('email', ecla_form.base_fields.keys())
コード例 #11
0
ファイル: test_admin.py プロジェクト: fagan2888/dfadmin
 def test_df_role_model_admin_has_fields(self):
     ma = ModelAdmin(DfRole, self.site)
     self.assertEqual(set(ma.get_form(request).base_fields),
                      {'ldap_name', 'name', 'description'})