コード例 #1
0
ファイル: tests.py プロジェクト: ArcTanSusan/django
    def test_default_foreign_key_widget(self):
        # First, without any radio_fields specified, the widgets for ForeignKey
        # and fields with choices specified ought to be a basic Select widget.
        # ForeignKey widgets in the admin are wrapped with RelatedFieldWidgetWrapper so
        # they need to be handled properly when type checking. For Select fields, all of
        # the choices lists have a first entry of dashes.
        cma = ModelAdmin(Concert, self.site)
        cmafa = cma.get_form(request)

        self.assertEqual(type(cmafa.base_fields['main_band'].widget.widget), Select)
        self.assertEqual(
            list(cmafa.base_fields['main_band'].widget.choices),
            [('', '---------'), (self.band.id, 'The Doors')])

        self.assertEqual(type(cmafa.base_fields['opening_band'].widget.widget), Select)
        self.assertEqual(
            list(cmafa.base_fields['opening_band'].widget.choices),
            [('', '---------'), (self.band.id, 'The Doors')]
        )
        self.assertEqual(type(cmafa.base_fields['day'].widget), Select)
        self.assertEqual(
            list(cmafa.base_fields['day'].widget.choices),
            [('', '---------'), (1, 'Fri'), (2, 'Sat')]
        )
        self.assertEqual(type(cmafa.base_fields['transport'].widget), Select)
        self.assertEqual(
            list(cmafa.base_fields['transport'].widget.choices),
            [('', '---------'), (1, 'Plane'), (2, 'Train'), (3, 'Bus')])
コード例 #2
0
ファイル: tests.py プロジェクト: Caramel/django
    def test_default_foreign_key_widget(self):
        # First, without any radio_fields specified, the widgets for ForeignKey
        # and fields with choices specified ought to be a basic Select widget.
        # ForeignKey widgets in the admin are wrapped with RelatedFieldWidgetWrapper so
        # they need to be handled properly when type checking. For Select fields, all of
        # the choices lists have a first entry of dashes.

        cma = ModelAdmin(Concert, self.site)
        cmafa = cma.get_form(request)

        self.assertEqual(type(cmafa.base_fields["main_band"].widget.widget), Select)
        self.assertEqual(
            list(cmafa.base_fields["main_band"].widget.choices), [("", "---------"), (self.band.id, "The Doors")]
        )

        self.assertEqual(type(cmafa.base_fields["opening_band"].widget.widget), Select)
        self.assertEqual(
            list(cmafa.base_fields["opening_band"].widget.choices), [("", "---------"), (self.band.id, "The Doors")]
        )

        self.assertEqual(type(cmafa.base_fields["day"].widget), Select)
        self.assertEqual(list(cmafa.base_fields["day"].widget.choices), [("", "---------"), (1, "Fri"), (2, "Sat")])

        self.assertEqual(type(cmafa.base_fields["transport"].widget), Select)
        self.assertEqual(
            list(cmafa.base_fields["transport"].widget.choices),
            [("", "---------"), (1, "Plane"), (2, "Train"), (3, "Bus")],
        )
コード例 #3
0
ファイル: tests.py プロジェクト: LouisAmon/django
 def test_log_actions(self):
     ma = ModelAdmin(Band, self.site)
     mock_request = MockRequest()
     mock_request.user = User.objects.create(username='******')
     self.assertEqual(ma.log_addition(mock_request, self.band, 'added'), LogEntry.objects.latest('id'))
     self.assertEqual(ma.log_change(mock_request, self.band, 'changed'), LogEntry.objects.latest('id'))
     self.assertEqual(ma.log_change(mock_request, self.band, 'deleted'), LogEntry.objects.latest('id'))
コード例 #4
0
    def change_decision_via_admin(self, decision, new_organization=None):
        """
        Used for testing custom behaviour for Decision change in django
        admin - see publicweb/admin.py, DecisionAdmin.save_model()
        Requirement: logged in user is_staff and is_superuser.
        """
        ma = ModelAdmin(Decision, AdminSite())
        data = ma.get_form(None)(instance=decision).initial
        for key, value in data.items():
            if value == None:
                data[key] = u''
        man_data = {
            'feedback_set-TOTAL_FORMS': u'1', 
            'feedback_set-INITIAL_FORMS': u'0', 
            'feedback_set-MAX_NUM_FORMS': u''
        }
        data.update(man_data)
        if new_organization:
            data['organization'] = new_organization.id

        url = reverse('admin:publicweb_decision_change', args=[decision.id])
        response = self.client.post(url, data, follow=True)
        self.assertEquals(
            response.template_name, 
            'admin/decision_change_list.html',
            "Failed to edit Decision via admin screen")

        decision = Decision.objects.get(id=decision.id)
        if new_organization:
            self.assertEquals(decision.organization.id, new_organization.id)
コード例 #5
0
    def change_organization_via_admin_screens(self, decision, new_organization=None):
        orig_user = self.user

        admin_user = User.objects.filter(is_staff=True)[0]
        self.login(admin_user.username)
        ma = ModelAdmin(Decision, AdminSite())
        data = ma.get_form(None)(instance=decision).initial
        for key, value in data.items():
            if value == None:
                data[key] = u''
        man_data = {
            'feedback_set-TOTAL_FORMS': u'1', 
            'feedback_set-INITIAL_FORMS': u'0', 
            'feedback_set-MAX_NUM_FORMS': u''
        }
        data.update(man_data)
        if new_organization:
            data['organization'] = new_organization.id
        url = reverse('admin:publicweb_decision_change', args=[decision.id])
        response = self.client.post(url, data, follow=True)
        self.assertEquals(response.status_code, 200)
        if new_organization:
            self.assertEquals(Decision.objects.get(id=decision.id).organization.id, new_organization.id)

        self.login(orig_user)
        return admin_user
コード例 #6
0
ファイル: tests.py プロジェクト: cemoulto/django
    def test_default_fields(self):
        ma = ModelAdmin(Band, self.site)

        self.assertEqual(list(ma.get_form(request).base_fields), ["name", "bio", "sign_date"])

        self.assertEqual(list(ma.get_fields(request)), ["name", "bio", "sign_date"])

        self.assertEqual(list(ma.get_fields(request, self.band)), ["name", "bio", "sign_date"])
コード例 #7
0
ファイル: tests.py プロジェクト: chripede/django-vies
    def test_VATINField_admin(self):
        """Admin form is generated."""
        ma = ModelAdmin(VIESModel, self.site)

        try:
            ma.get_form(request)
        except Exception as e:
            self.fail(e.message)
コード例 #8
0
ファイル: test_admin.py プロジェクト: hizardapp/Hizard
    def test_fields(self):
        ma = ModelAdmin(CustomUser, self.site)
        expected = ['password', 'last_login', 'is_superuser', 'groups',
                    'user_permissions', 'email', 'is_active', 'is_admin',
                    'is_staff', 'is_company_admin', 'avatar', 'name',
                    'activation_key', 'company']

        self.assertEqual(expected, ma.get_form(None).base_fields.keys())
コード例 #9
0
ファイル: tests.py プロジェクト: ArcTanSusan/django
 def test_default_ordering(self):
     """
     The default ordering should be by name, as specified in the inner Meta
     class.
     """
     ma = ModelAdmin(Band, site)
     names = [b.name for b in ma.get_queryset(request)]
     self.assertEqual(['Aerosmith', 'Radiohead', 'Van Halen'], names)
コード例 #10
0
ファイル: tests.py プロジェクト: CodeMonk/django
 def test_get_deleted_objects(self):
     mock_request = MockRequest()
     mock_request.user = User.objects.create_superuser(username='******', email='*****@*****.**', password='******')
     ma = ModelAdmin(Band, self.site)
     deletable_objects, model_count, perms_needed, protected = ma.get_deleted_objects([self.band], request)
     self.assertEqual(deletable_objects, ['Band: The Doors'])
     self.assertEqual(model_count, {'bands': 1})
     self.assertEqual(perms_needed, set())
     self.assertEqual(protected, [])
コード例 #11
0
ファイル: tests.py プロジェクト: ArcTanSusan/django
 def test_default_fieldsets(self):
     # fieldsets_add and fieldsets_change should return a special data structure that
     # is used in the templates. They should generate the "right thing" whether we
     # have specified a custom form, the fields argument, or nothing at all.
     #
     # Here's the default case. There are no custom form_add/form_change methods,
     # no fields argument, and no fieldsets argument.
     ma = ModelAdmin(Band, self.site)
     self.assertEqual(ma.get_fieldsets(request), [(None, {'fields': ['name', 'bio', 'sign_date']})])
     self.assertEqual(ma.get_fieldsets(request, self.band), [(None, {'fields': ['name', 'bio', 'sign_date']})])
コード例 #12
0
ファイル: tests.py プロジェクト: ArcTanSusan/django
    def test_has_module_permission(self):
        """
        as_module_permission returns True for users who have any permission
        for the module and False for users who don't.
        """
        ma = ModelAdmin(Band, AdminSite())
        request = MockRequest()
        request.user = self.MockViewUser()
        self.assertIs(ma.has_module_permission(request), True)
        request.user = self.MockAddUser()
        self.assertTrue(ma.has_module_permission(request))
        request.user = self.MockChangeUser()
        self.assertTrue(ma.has_module_permission(request))
        request.user = self.MockDeleteUser()
        self.assertTrue(ma.has_module_permission(request))

        original_app_label = ma.opts.app_label
        ma.opts.app_label = 'anotherapp'
        try:
            request.user = self.MockViewUser()
            self.assertIs(ma.has_module_permission(request), False)
            request.user = self.MockAddUser()
            self.assertFalse(ma.has_module_permission(request))
            request.user = self.MockChangeUser()
            self.assertFalse(ma.has_module_permission(request))
            request.user = self.MockDeleteUser()
            self.assertFalse(ma.has_module_permission(request))
        finally:
            ma.opts.app_label = original_app_label
コード例 #13
0
ファイル: tests.py プロジェクト: czpython/django
 def test_get_actions_requires_change_perm(self):
     user = User.objects.create_user(username='******', email='*****@*****.**', password='******')
     mock_request = MockRequest()
     mock_request.user = user
     mock_request.GET = {}
     ma = ModelAdmin(Band, self.site)
     self.assertEqual(list(ma.get_actions(mock_request).keys()), [])
     p = Permission.objects.get(codename='change_band', content_type=get_content_type_for_model(Band()))
     user.user_permissions.add(p)
     mock_request.user = User.objects.get(pk=user.pk)
     self.assertEqual(list(ma.get_actions(mock_request).keys()), ['delete_selected'])
コード例 #14
0
ファイル: test_admin.py プロジェクト: hizardapp/Hizard
 def test_fieldsets(self):
     user = UserFactory()
     ma = ModelAdmin(CustomUser, self.site)
     expected = [
         (None, {
             'fields': [
                 'password', 'last_login', 'is_superuser', 'groups',
                 'user_permissions', 'email', 'is_active', 'is_admin',
                 'is_staff', 'is_company_admin', 'avatar', 'name',
                 'activation_key', 'company']
         })
     ]
     self.assertEqual(expected, ma.get_fieldsets(None, user))
コード例 #15
0
ファイル: tests.py プロジェクト: LouisAmon/django
 def test_has_delete_permission(self):
     """
     has_delete_permission returns True for users who can delete objects and
     False for users who can't.
     """
     ma = ModelAdmin(Band, AdminSite())
     request = MockRequest()
     request.user = self.MockAddUser()
     self.assertFalse(ma.has_delete_permission(request))
     request.user = self.MockChangeUser()
     self.assertFalse(ma.has_delete_permission(request))
     request.user = self.MockDeleteUser()
     self.assertTrue(ma.has_delete_permission(request))
コード例 #16
0
ファイル: tests.py プロジェクト: ArcTanSusan/django
 def test_has_view_permission(self):
     """
     has_view_permission() returns True for users who can view objects and
     False for users who can't.
     """
     ma = ModelAdmin(Band, AdminSite())
     request = MockRequest()
     request.user = self.MockViewUser()
     self.assertIs(ma.has_view_permission(request), True)
     request.user = self.MockAddUser()
     self.assertIs(ma.has_view_permission(request), False)
     request.user = self.MockChangeUser()
     self.assertIs(ma.has_view_permission(request), True)
     request.user = self.MockDeleteUser()
     self.assertIs(ma.has_view_permission(request), False)
コード例 #17
0
ファイル: views.py プロジェクト: osiloke/django-frontend-edit
def add(request):
    """
    Process the add form.
    """
    model = get_model(request.POST["app"], request.POST["model"])
    if not can("add", model, request.user):
        return {"valid": True, "permissionerror":"You don't have permission to add!"}
    obj = model()
    form = get_model_form(obj, request.POST["fields"], data=request.POST,\
                        files=request.FILES, parent_model_related_name=request.POST["parent_model_related_name"],\
                        parent_model=request.POST["parent_model"], \
                        parent_id = request.POST["parent_id"])

    if form.is_valid():

        saved_obj=form.save()

        'Create change message'
        try:
            model_admin = ModelAdmin(model, admin.site)
            message = model_admin.construct_change_message(request, form, None)
            model_admin.log_change(request, saved_obj, message)
        except Exception:
            pass
        data = {
            'id': saved_obj.id,
            'valid': True,
        }
    else:
        "from django_ajax_validation"
        errors = form.errors
        formfields = dict([(fieldname, form[fieldname]) for fieldname in form.fields.keys()]) 
        final_errors = {}
        for key, val in errors.iteritems():
            if '__all__' in key:
                final_errors[key] = val
            else:# not isinstance(formfields[key].field):
                html_id = formfields[key].field.widget.attrs.get('id') or formfields[key].auto_id
                html_id = formfields[key].field.widget.id_for_label(html_id)
                final_errors[html_id] = val
        data = {
            'valid': False,
            'errors': final_errors,
        }
    return data
コード例 #18
0
def edit_bbn(self, request, extra_context=None):
    from django.contrib.admin.options import ModelAdmin
    # opts = self.model._meta
    # admin_site = self.admin_site
    # has_perm = request.user.has_perm(opts.app_label + '.' + opts.get_change_permission())

    bifsets = BifSettings.objects.all()
    self.change_list_template = "admin/survey/bifsettings/change_list.html"
    return ModelAdmin.changelist_view (self, request, extra_context)
コード例 #19
0
ファイル: views.py プロジェクト: NeoChronos/mezzanine
def edit(request):
    """
    Process the inline editing form.
    """
    model = get_model(request.POST["app"], request.POST["model"])
    obj = model.objects.get(id=request.POST["id"])
    form = get_edit_form(obj, request.POST["fields"], data=request.POST, files=request.FILES)
    if not is_editable(obj, request):
        response = _("Permission denied")
    elif form.is_valid():
        form.save()
        model_admin = ModelAdmin(model, admin.site)
        message = model_admin.construct_change_message(request, form, None)
        model_admin.log_change(request, obj, message)
        response = ""
    else:
        response = form.errors.values()[0][0]
    return HttpResponse(unicode(response))
コード例 #20
0
ファイル: views.py プロジェクト: osiloke/django-frontend-edit
def edit(request):
    """
    Process the inline editing form.
    """
    try:
        model = get_model(request.POST["app"], request.POST["model"])
        if not can("change", model, request.user):
            return {"valid": True, "permissionerror":"You don't have permission to edit!"}
        obj = model.objects.get(id=request.POST["id"])
        form = get_model_form(obj, request.POST["fields"], data=request.POST,
                             files=request.FILES)
    except Exception:
        pass
        
    if form.is_valid():
        form.save()
        model_admin = ModelAdmin(model, admin.site)
        message = model_admin.construct_change_message(request, form, None)
        model_admin.log_change(request, obj, message)
        data = {
            'valid': True
        }
    else:
        "from django_ajax_validation"
        errors = form.errors
        formfields = dict([(fieldname, form[fieldname]) for fieldname in form.fields.keys()])
#        pprint (errors)
        final_errors = {}
        for key, val in errors.iteritems():
            if '__all__' in key:
                final_errors[key] = val
            elif not isinstance(formfields[key].field):
                html_id = formfields[key].field.widget.attrs.get('id') or formfields[key].auto_id
                html_id = formfields[key].field.widget.id_for_label(html_id)
                final_errors[html_id] = val
        data = {
            'valid': False,
            'errors': final_errors,
        }

    return data 
コード例 #21
0
def admin_change_form(self, request, object_id, form_url='', extra_context={}):
    from django.contrib.admin.options import ModelAdmin
    import json
    self.change_form_template = "admin/survey/bifsettings/change_form.html"
    bif = BifSettings.objects.get(id=object_id)
    if len(bif.bif) == 0:
        extra_context['bbn_settings'] = get_bbn_nodes()
        bif.bif = json.dumps(extra_context['bbn_settings'])
        bif.save()
    else:
        import ast
        extra_context["bbn_settings"] = ast.literal_eval(bif.bif)
    extra_context['bbn_str'] = json.dumps(extra_context['bbn_settings'])
    return ModelAdmin.change_view(self, request, object_id, form_url, extra_context)
コード例 #22
0
ファイル: tests.py プロジェクト: ArcTanSusan/django
    def test_queryset_override(self):
        # If the queryset of a ModelChoiceField in a custom form is overridden,
        # RelatedFieldWidgetWrapper doesn't mess that up.
        band2 = Band.objects.create(name='The Beatles', bio='', sign_date=date(1962, 1, 1))

        ma = ModelAdmin(Concert, self.site)
        form = ma.get_form(request)()

        self.assertHTMLEqual(
            str(form["main_band"]),
            '<div class="related-widget-wrapper">'
            '<select name="main_band" id="id_main_band" required>'
            '<option value="" selected>---------</option>'
            '<option value="%d">The Beatles</option>'
            '<option value="%d">The Doors</option>'
            '</select></div>' % (band2.id, self.band.id)
        )

        class AdminConcertForm(forms.ModelForm):
            def __init__(self, *args, **kwargs):
                super().__init__(*args, **kwargs)
                self.fields["main_band"].queryset = Band.objects.filter(name='The Doors')

        class ConcertAdminWithForm(ModelAdmin):
            form = AdminConcertForm

        ma = ConcertAdminWithForm(Concert, self.site)
        form = ma.get_form(request)()

        self.assertHTMLEqual(
            str(form["main_band"]),
            '<div class="related-widget-wrapper">'
            '<select name="main_band" id="id_main_band" required>'
            '<option value="" selected>---------</option>'
            '<option value="%d">The Doors</option>'
            '</select></div>' % self.band.id
        )
コード例 #23
0
ファイル: tests.py プロジェクト: eddyod/ActiveBrainAtlasAdmin
 def test_modeladmin_str(self):
     ma = ModelAdmin(Slide, self.site)
     self.assertEqual(str(ma), 'brain.ModelAdmin')
コード例 #24
0
 def test_modeladmin_str(self):
     ma = ModelAdmin(CertificateAuthority, self.site)
     self.assertEqual(str(ma), 'modeladmin.ModelAdmin')
コード例 #25
0
 def test_modelAdmin_str(self):
     ma = ModelAdmin(Product, self.site)
     self.assertEqual(str(ma), 'product_catalog.ModelAdmin')
コード例 #26
0
    def test_should_show_column_defined(self):
        question_expected = ['question', 'choices']
        question_model_admin = ModelAdmin(Question, self.site)

        self.assertEqual(list(question_model_admin.get_fields(request)),
                         question_expected)
コード例 #27
0
 def auth_token_model_admin(self):
     return ModelAdmin(AuthToken, AdminSite())
コード例 #28
0
ファイル: tests.py プロジェクト: ArcTanSusan/django
 def test_default_fields(self):
     ma = ModelAdmin(Band, self.site)
     self.assertEqual(list(ma.get_form(request).base_fields), ['name', 'bio', 'sign_date'])
     self.assertEqual(list(ma.get_fields(request)), ['name', 'bio', 'sign_date'])
     self.assertEqual(list(ma.get_fields(request, self.band)), ['name', 'bio', 'sign_date'])
     self.assertIsNone(ma.get_exclude(request, self.band))
コード例 #29
0
 def test_modeladmin_str(self):
     model_admin = ModelAdmin(User, self.site)
     self.assertEqual(str(model_admin), 'accounts.ModelAdmin')
コード例 #30
0
 def test_referencephraseadmin_str(self):
     ref_phrase = ModelAdmin(ReferencePhrases, self.site)
     self.assertEqual(str(ref_phrase), 'medicalreport.ModelAdmin')
コード例 #31
0
ファイル: tests.py プロジェクト: starkisalive/django
 def test_default_fields(self):
     ma = ModelAdmin(Band, self.site)
     self.assertEqual(list(ma.get_form(request).base_fields), ['name', 'bio', 'sign_date'])
     self.assertEqual(list(ma.get_fields(request)), ['name', 'bio', 'sign_date'])
     self.assertEqual(list(ma.get_fields(request, self.band)), ['name', 'bio', 'sign_date'])
     self.assertIsNone(ma.get_exclude(request, self.band))
コード例 #32
0
ファイル: tests.py プロジェクト: starkisalive/django
 def test_default_attributes(self):
     ma = ModelAdmin(Band, self.site)
     self.assertEqual(ma.actions, ())
     self.assertEqual(ma.inlines, ())
コード例 #33
0
ファイル: tests.py プロジェクト: starkisalive/django
 def test_modeladmin_repr(self):
     ma = ModelAdmin(Band, self.site)
     self.assertEqual(
         repr(ma),
         "<ModelAdmin: model=Band site=AdminSite(name='admin')>",
     )
コード例 #34
0
 def test_modeladmin_str(self):
     ma = ModelAdmin(Band, self.site)
     self.assertEqual(str(ma), 'modeladmin.ModelAdmin')
コード例 #35
0
def admin_add_form(self, request, form_url='', extra_context=None):
    from django.contrib.admin.options import ModelAdmin
    self.add_form_template = "admin/survey/bifsettings/change_form.html"
    return ModelAdmin.add_view(self, request, form_url, extra_context)
コード例 #36
0
ファイル: tests.py プロジェクト: MyaThandarKyaw/django
    def test_default_fields(self):
        ma = ModelAdmin(Band, self.site)

        self.assertEquals(ma.get_form(request).base_fields.keys(),
            ['name', 'bio', 'sign_date'])
コード例 #37
0
ファイル: test_actions.py プロジェクト: pm5/Disfactory
 def test_modeladmin_str(self):
     ma = ModelAdmin(Factory, self.site)
     self.assertEqual(str(ma), "api.ModelAdmin")
コード例 #38
0
ファイル: admin.py プロジェクト: liuliainio/liuli
 def queryset(self, request):
     query_set = ModelAdmin.queryset(self, request)
     user = request.user
     if user.is_superuser:
         return query_set
     return query_set.filter(app_key__exact=user.get_profile().app_key.unique_token)
コード例 #39
0
ファイル: test_models.py プロジェクト: iago1460/django-radio
 def test_fieldset(self):
     ma = ModelAdmin(Programme, self.site)
     self.assertEqual(
         ma.get_fields(None),
         ['name', 'synopsis', 'photo', 'language', 'current_season', 'category', 'slug', '_runtime', 'start_date', 'end_date'])
コード例 #40
0
ファイル: test_admin.py プロジェクト: EricSchles/forecast
 def test_default_fields(self):
     ma = ModelAdmin(OSBUAdvisor, self.site)
     self.assertEqual(
         list(ma.get_form(self.client).base_fields),
         ['name', 'email', 'phone']
     )
コード例 #41
0
ファイル: admin.py プロジェクト: anhpt204/tracnghiem
 def change_view(self, request, object_id, form_url='', extra_context=None):
     self.inlines = [QuestionGroup_SettingInLine, Chapter_SettingInLine]
     return ModelAdmin.change_view(self, request, object_id, form_url=form_url, extra_context=extra_context)
コード例 #42
0
ファイル: test_admin.py プロジェクト: isabella232/forecast
 def test_default_fields(self):
     ma = ModelAdmin(OSBUAdvisor, self.site)
     self.assertEqual(list(ma.get_form(self.client).base_fields),
                      ['name', 'email', 'phone'])
コード例 #43
0
ファイル: admin.py プロジェクト: anhpt204/tracnghiem
 def add_view(self, request, form_url='', extra_context=None):
     self.inlines = []
     return ModelAdmin.add_view(self, request, form_url=form_url, extra_context=extra_context)
コード例 #44
0
ファイル: test_models.py プロジェクト: iago1460/django-radio
 def test_fieldset(self):
     ma = ModelAdmin(Programme, self.site)
     self.assertEqual(ma.get_fields(None), [
         'name', 'synopsis', 'photo', 'language', 'current_season',
         'category', 'slug', '_runtime', 'start_date', 'end_date'
     ])
コード例 #45
0
    def test_default_fields(self):
        ma = ModelAdmin(Band, self.site)

        self.assertEquals(ma.get_form(request).base_fields.keys(),
            ['name', 'bio', 'sign_date'])