Пример #1
0
    def test_field_enumerator06(self):
        "Filter/exclude : multiple conditions + field true attributes"
        self._deactivate_translation()

        expected = [
            ('birthday', _(u'Birthday')),
            ('civility', _(u'Civility')),
            ('description', _(u'Description')),
            ('email', _(u'Email address')),
            ('first_name', _(u'First name')),
            ('is_a_nerd', _(u'Is a Nerd')),
            ('last_name', _(u'Last name')),
            ('sector', _(u'Line of business')),
            ('mobile', _(u'Mobile')),
            ('user', _(u'Owner user')),
            ('phone', _(u'Phone number')),
            ('image', _(u'Photograph')),
            ('position', _(u'Position')),
            ('languages', _(u'Spoken language(s)')),
            ('url_site', _(u'Web Site')),
        ]
        choices = meta.ModelFieldEnumerator(FakeContact, only_leafs=False) \
                      .filter(editable=True, viewable=True).choices()
        self.assertEqual(expected, choices, choices)

        choices = meta.ModelFieldEnumerator(FakeContact, only_leafs=False) \
                      .exclude(editable=False, viewable=False).choices()
        self.assertEqual(expected, choices, choices)
Пример #2
0
    def test_field_enumerator05(self):
        "Other ContentType."
        self._deactivate_translation()

        expected = [
            ('created', _('Creation date')),
            ('description', _('Description')),
            ('modified', _('Last modification')),
            ('name', _('Name of the campaign')),
        ]
        choices = meta.ModelFieldEnumerator(FakeEmailCampaign).filter(
            viewable=True).choices()
        self.assertEqual(expected, choices, choices)

        choices = meta.ModelFieldEnumerator(
            # FakeEmailCampaign, only_leafs=False
            FakeEmailCampaign,
            only_leaves=False,
        ).filter(
            # (lambda f, depth: f.get_internal_type() != 'ForeignKey'),
            (lambda model, field, depth: field.get_internal_type() !=
             'ForeignKey'),
            viewable=True,
        ).choices()
        expected.append(('mailing_lists', _('Related mailing lists')))
        self.assertEqual(expected, choices, choices)
Пример #3
0
    def test_field_enumerator03(self):
        "deep = 1"
        self._deactivate_translation()

        fs = partial(u'[{user}] - {field}'.format, user=_(u'Owner user'))
        expected = [
            ('created', _(u'Creation date')),
            ('modified', _('Last modification')),
            ('user__email', fs(field=_(u'Email address'))),
            ('user__last_name', fs(field=_(u'Last name'))),
            ('user__username', fs(field=_(u'Username'))),
        ]
        self.assertEqual(
            expected,
            meta.ModelFieldEnumerator(CremeEntity,
                                      deep=1).filter(viewable=True).choices())
        self.assertEqual(
            expected,
            meta.ModelFieldEnumerator(
                CremeEntity, deep=1,
                only_leafs=True).filter(viewable=True).choices())
        self.assertEqual(
            [
                ('created', _(u'Creation date')),
                ('modified', _(u'Last modification')),
                ('user', _(u'Owner user')),  # <===
                ('user__email', fs(field=_(u'Email address'))),
                ('user__last_name', fs(field=_(u'Last name'))),
                ('user__username', fs(field=_(u'Username'))),
            ],
            meta.ModelFieldEnumerator(
                CremeEntity, deep=1,
                only_leafs=False).filter(viewable=True).choices())
Пример #4
0
    def test_field_enumerator02(self):
        "Filter, exclude (simple)"
        self._deactivate_translation()

        expected = [
            ('created', _(u'Creation date')),
            ('modified', _(u'Last modification')),
        ]
        choices = meta.ModelFieldEnumerator(CremeEntity).filter(
            viewable=True).choices()
        self.assertEqual(expected, choices, choices)

        choices = meta.ModelFieldEnumerator(CremeEntity).exclude(
            viewable=False).choices()
        self.assertEqual(expected, choices, choices)

        expected = [('created', _(u'Creation date')),
                    ('modified', _(u'Last modification')),
                    ('user', _(u'Owner user'))]
        choices = meta.ModelFieldEnumerator(
            CremeEntity, only_leafs=False).filter(viewable=True).choices()
        self.assertEqual(expected, choices, choices)

        choices = meta.ModelFieldEnumerator(
            CremeEntity, only_leafs=False).exclude(viewable=False).choices()
        self.assertEqual(expected, choices, choices)
Пример #5
0
    def test_field_enumerator01(self):
        self._deactivate_translation()

        expected = [
            ('created', _('Creation date')),
            ('description', _('Description')),
            ('header_filter_search_field', 'header filter search field'),
            ('id', 'ID'),
            ('is_deleted', 'is deleted'),
            ('modified', _('Last modification')),
            ('uuid', 'uuid'),
        ]
        choices = meta.ModelFieldEnumerator(CremeEntity).choices()
        self.assertEqual(expected, choices, choices)

        choices = meta.ModelFieldEnumerator(CremeEntity,
                                            only_leafs=True).choices()
        self.assertEqual(expected, choices, choices)

        choices = meta.ModelFieldEnumerator(CremeEntity,
                                            only_leafs=False).choices()
        self.assertEqual([
            ('created', _('Creation date')),
            ('description', _('Description')),
            ('entity_type', 'entity type'),
            ('header_filter_search_field', 'header filter search field'),
            ('id', 'ID'),
            ('is_deleted', 'is deleted'),
            ('modified', _('Last modification')),
            ('user', _('Owner user')),
            ('sandbox', 'sandbox'),
            ('uuid', 'uuid'),
        ], choices, choices)
Пример #6
0
    def test_field_enumerator04(self):
        "Filter with function, exclude"
        self._deactivate_translation()

        self.assertEqual([('modified', _('Last modification'))],
                         meta.ModelFieldEnumerator(CremeEntity, deep=1).filter(
                             lambda f, depth: f.name.endswith('ied'),
                             viewable=True).choices())
        self.assertEqual([('created', _('Creation date'))],
                         meta.ModelFieldEnumerator(
                             CremeEntity, deep=0).exclude(
                                 lambda f, depth: f.name.endswith('ied'),
                                 viewable=False).choices())
Пример #7
0
 def test_field_enumerator09(self):
     "Translation activated."
     choices = {
         # *meta.ModelFieldEnumerator(FakeActivity, deep=1, only_leafs=False)
         *meta.ModelFieldEnumerator(
             FakeActivity, depth=1,
             only_leaves=False).filter(viewable=True).choices(),
     }
     fs = '[{}] - {}'.format
     type_lbl = _('Activity type')
     user_lbl = _('Owner user')
     self.assertSetEqual(
         {
             ('type', type_lbl),
             ('created', _('Creation date')),
             ('description', _('Description')),
             ('end', _('End')),
             ('modified', _('Last modification')),
             ('minutes', _('Minutes')),
             ('user', user_lbl),
             ('start', _('Start')),
             ('title', _('Title')),
             ('place', _('Place')),
             ('type__name', fs(type_lbl, _('Name'))),
             ('user__email', fs(user_lbl, _('Email address'))),
             ('user__last_name', fs(user_lbl, _('Last name'))),
             ('user__username', fs(user_lbl, _('Username'))),
         },
         choices,
         choices,
     )
Пример #8
0
    def test_field_enumerator08(self):
        "'depth' argument."
        self._deactivate_translation()

        choices = meta.ModelFieldEnumerator(
            # FakeActivity, deep=1, only_leafs=False,
            FakeActivity,
            depth=1,
            only_leaves=False,
        ).filter(
            # (lambda f, depth: not depth or f.name == 'name'),
            (lambda model, field, depth: not depth or field.name == 'name'),
            viewable=True,
        ).choices()

        type_lbl = _('Activity type')
        self.assertListEqual(
            [
                ('type', type_lbl),
                ('created', _('Creation date')),
                ('description', _('Description')),
                ('end', _('End')),
                ('modified', _('Last modification')),
                ('minutes', _('Minutes')),
                ('user', _('Owner user')),
                ('place', _('Place')),
                ('start', _('Start')),
                ('title', _('Title')),
                ('type__name', f'[{type_lbl}] - {_("Name")}'),
            ],
            choices,
            choices,
        )
Пример #9
0
    def test_field_enumerator07(self):
        "Ordering of FKs."
        self._deactivate_translation()

        choices = meta.ModelFieldEnumerator(
            # FakeActivity, deep=1, only_leafs=False,
            FakeActivity,
            depth=1,
            only_leaves=False,
        ).filter(viewable=True).choices()
        fs = '[{}] - {}'.format
        type_lbl = _('Activity type')
        user_lbl = _('Owner user')
        self.assertListEqual(
            [
                ('type', type_lbl),
                ('created', _('Creation date')),
                ('description', _('Description')),
                ('end', _('End')),
                ('modified', _('Last modification')),
                ('minutes', _('Minutes')),
                ('user', user_lbl),
                ('place', _('Place')),
                ('start', _('Start')),
                ('title', _('Title')),
                ('type__name', fs(type_lbl, _('Name'))),
                ('user__email', fs(user_lbl, _('Email address'))),
                ('user__last_name', fs(user_lbl, _('Last name'))),
                ('user__username', fs(user_lbl, _('Username'))),
            ],
            choices,
            choices,
        )
Пример #10
0
    def test_field_enumerator04(self):
        "Filter with function, exclude."
        self._deactivate_translation()

        self.assertListEqual(
            [('modified', _('Last modification'))],
            # meta.ModelFieldEnumerator(CremeEntity, deep=1)
            #     .filter(lambda f, depth: f.name.endswith('ied'), viewable=True)
            meta.ModelFieldEnumerator(CremeEntity, depth=1).filter(
                lambda model, field, depth: field.name.endswith('ied'),
                viewable=True).choices(),
        )
        self.assertListEqual(
            [('description', _('Description'))],
            # meta.ModelFieldEnumerator(CremeEntity, deep=0)
            #     .exclude(lambda f, depth: f.name.endswith('ed'), viewable=False)
            meta.ModelFieldEnumerator(CremeEntity, depth=0).exclude(
                lambda model, field, depth: field.name.endswith('ed'),
                viewable=False).choices(),
        )
Пример #11
0
    def test_field_enumerator08(self):
        "'depth' argument"
        self._deactivate_translation()

        choices = meta.ModelFieldEnumerator(FakeActivity, deep=1, only_leafs=False) \
                      .filter((lambda f, depth: not depth or f.name == 'name'), viewable=True) \
                      .choices()

        type_lbl = _(u'Activity type')
        self.assertEqual([
            ('type', type_lbl),
            ('created', _(u'Creation date')),
            ('end', _(u'End')),
            ('modified', _(u'Last modification')),
            ('user', _(u'Owner user')),
            ('start', _(u'Start')),
            ('title', _(u'Title')),
            ('type__name', u'[{}] - {}'.format(type_lbl, _(u'Name'))),
        ], choices, choices)
Пример #12
0
    def test_field_enumerator07(self):
        "Ordering of FKs"
        self._deactivate_translation()

        choices = meta.ModelFieldEnumerator(FakeActivity, deep=1, only_leafs=False) \
                      .filter(viewable=True).choices()
        fs = u'[{}] - {}'.format
        type_lbl = _(u'Activity type')
        user_lbl = _('Owner user')
        self.assertEqual([
            ('type', type_lbl),
            ('created', _(u'Creation date')),
            ('end', _(u'End')),
            ('modified', _(u'Last modification')),
            ('user', user_lbl),
            ('start', _(u'Start')),
            ('title', _(u'Title')),
            ('type__name', fs(type_lbl, _(u'Name'))),
            ('user__email', fs(user_lbl, _(u'Email address'))),
            ('user__last_name', fs(user_lbl, _(u'Last name'))),
            ('user__username', fs(user_lbl, _(u'Username'))),
        ], choices, choices)