Ejemplo n.º 1
0
    def test_fk_entity_innerform01(self):
        user = self.create_user()

        image_field = FakeContact._meta.get_field('image')
        self.assertFalse(image_field.remote_field.limit_choices_to)

        contact = FakeContact.objects.create(first_name='A', last_name='B', user=user)

        form = BulkDefaultEditForm(FakeContact, image_field, user, [contact])
        self.assertIsInstance(form.fields['field_value'], CreatorEntityField)
        self.assertFalse(form.fields['field_value'].q_filter)
Ejemplo n.º 2
0
    def test_manytomany_entity_innerform02(self):
        "limit_choices_to"
        user = self.login()

        images_field = FakeProduct._meta.get_field('images')
        self.assertEqual({'user__is_active': True}, images_field.remote_field.limit_choices_to)

        product = FakeProduct.objects.create(user=user, name='P1')

        form = BulkDefaultEditForm(FakeEmailCampaign, images_field, user, [product])
        self.assertEqual({'user__is_active': True}, form.fields['field_value'].q_filter)
Ejemplo n.º 3
0
    def test_fk_innerform01(self):
        user = self.create_user()

        civility_field = FakeContact._meta.get_field('civility')
        self.assertFalse(civility_field.remote_field.limit_choices_to)

        contact = FakeContact.objects.create(first_name='A', last_name='B', user=user)

        form = BulkDefaultEditForm(FakeContact, civility_field, user, [contact])
        field_value_f = form.fields['field_value']
        self.assertIsInstance(field_value_f, CreatorModelChoiceField)
        self.assertQuerysetSQLEqual(FakeCivility.objects.all(), field_value_f.queryset)
Ejemplo n.º 4
0
    def test_manytomany_entity_innerform01(self):
        user = self.create_user()

        mailing_lists_field = FakeEmailCampaign._meta.get_field('mailing_lists')
        self.assertFalse(mailing_lists_field.remote_field.limit_choices_to)

        campaign = FakeEmailCampaign.objects.create(name='A', user=user)

        form = BulkDefaultEditForm(FakeEmailCampaign, mailing_lists_field, user, [campaign])

        field_value_f = form.fields['field_value']
        self.assertIsInstance(field_value_f, MultiCreatorEntityField)
        self.assertFalse(field_value_f.q_filter)
Ejemplo n.º 5
0
    def test_fk_innerform02(self):
        "limit_choices_to: dict"
        user = self.login()

        lform_field = FakeOrganisation._meta.get_field('legal_form')
        self.assertEqual({'title__endswith': '[OK]'}, lform_field.remote_field.limit_choices_to)

        orga = FakeOrganisation.objects.create(user=user, name='A')

        form = BulkDefaultEditForm(FakeContact, lform_field, user, [orga])
        self.assertQuerysetSQLEqual(FakeLegalForm.objects.filter(title__endswith='[OK]'),
                                    form.fields['field_value'].queryset
                                   )
Ejemplo n.º 6
0
    def test_manytomany_innerform01(self):
        user = self.create_user()

        categories_field = FakeImage._meta.get_field('categories')
        self.assertFalse(categories_field.remote_field.limit_choices_to)

        image = FakeImage.objects.create(name='A', user=user)
        form = BulkDefaultEditForm(FakeImage, categories_field, user, [image])

        field_value_f = form.fields['field_value']
        self.assertIsInstance(field_value_f, ModelMultipleChoiceField)
        self.assertQuerysetSQLEqual(FakeImageCategory.objects.all(),
                                    field_value_f.queryset
                                   )
Ejemplo n.º 7
0
    def test_fk_entity_innerform02(self):
        "limit_choices_to."
        user = self.create_user()

        image_field = FakeOrganisation._meta.get_field('image')
        # NB: limit_choices_to=lambda: {'user__is_staff': False}
        self.assertTrue(callable(image_field.remote_field.limit_choices_to))

        orga = FakeOrganisation.objects.create(user=user, name='A')
        form = BulkDefaultEditForm(FakeOrganisation, image_field, user, [orga])

        field_value_f = form.fields['field_value']
        self.assertTrue(callable(field_value_f.q_filter))
        self.assertQEqual(Q(user__is_staff=False), field_value_f.q_filter_query)
Ejemplo n.º 8
0
    def test_manytomany_innerform02(self):
        "limit_choices_to"
        user = self.login()

        languages_field = FakeContact._meta.get_field('languages')
        # NB: limit_choices_to=~Q(name__contains='[deprecated]')
        self.assertIsInstance(languages_field.remote_field.limit_choices_to, Q)

        contact = FakeContact.objects.create(user=user, first_name='A', last_name='B')

        form = BulkDefaultEditForm(FakeImage, languages_field, user, [contact])
        self.assertQuerysetSQLEqual(Language.objects.exclude(name__contains='[deprecated]'),
                                    form.fields['field_value'].queryset
                                   )
Ejemplo n.º 9
0
    def test_fk_innerform03(self):
        "limit_choices_to: callable yielding Q"
        user = self.login()

        sector_field = FakeContact._meta.get_field('sector')
        # NB: limit_choices_to=lambda: ~Q(title='[INVALID]')
        self.assertTrue(callable(sector_field.remote_field.limit_choices_to))

        contact = FakeContact.objects.create(first_name='A', last_name='B', user=user)

        form = BulkDefaultEditForm(FakeContact, sector_field, user, [contact])
        self.assertQuerysetSQLEqual(FakeSector.objects.exclude(title='[INVALID]'),
                                    form.fields['field_value'].queryset
                                   )