コード例 #1
0
    def test_edit_hidden02(self):
        "Hidden => not editable (value=False)"
        self.login()

        sk = SettingKey(
            id='persons-test_edit_hidden02',
            description='Display logo ?',
            app_label='persons',
            type=SettingKey.BOOL,
            hidden=True,
        )
        setting_key_registry.register(sk)

        # sv = SettingValue.objects.create(key=sk, value=False)
        sv = SettingValue(key=sk)
        sv.value = False
        sv.save()
        # self.assertGET404(self._build_edit_url(sv))
        self.assertGET409(self._build_edit_url(sv))
コード例 #2
0
ファイル: test_setting.py プロジェクト: mrjmad/creme_crm
    def test_edit_hour(self):
        self.login()

        sk = SettingKey(
            id='persons-test_edit_hour',
            description='Reminder hour',
            app_label='persons',
            type=SettingKey.HOUR,
        )
        setting_key_registry.register(sk)

        hour = 11
        sv = SettingValue(key=sk)
        sv.value = hour
        sv.save()

        url = self._build_edit_url(sv)
        hour += 1
        self.assertNoFormError(self.client.post(url, data={'value': hour}))
        self.assertEqual(hour, self.refresh(sv).value)

        response = self.assertPOST200(url, data={'value': 24})
        self.assertFormError(
            response,
            'form',
            'value',
            _('Ensure this value is less than or equal to %(limit_value)s.') %
            {
                'limit_value': 23,
            },
        )

        response = self.assertPOST200(url, data={'value': -1})
        self.assertFormError(
            response,
            'form',
            'value',
            _('Ensure this value is greater than or equal to %(limit_value)s.')
            % {
                'limit_value': 0,
            },
        )
コード例 #3
0
    def test_get_4_keys02(self):
        "Exceptions."
        sk = SettingKey(
            id='activities-test_get_4_key02_1',
            description='Display logo?',
            app_label='activities',
            type=SettingKey.BOOL,
        )
        self._register_key(sk)

        with self.assertRaises(KeyError):
            SettingValue.objects.get_4_keys({'key': 'unknown'})

        with self.assertLogs(level='CRITICAL') as log_cm:
            with self.assertRaises(SettingValue.DoesNotExist):
                SettingValue.objects.get_4_keys({'key': sk})

        messages = log_cm.output
        self.assertEqual(1, len(messages))
        self.assertIn('' "creme_populate" '', messages[0])
コード例 #4
0
    def test_edit_bool(self):
        self.login()

        sk = SettingKey(
            id='persons-test_edit_bool',
            description='Display logo ?',
            app_label='persons',
            type=SettingKey.BOOL,
        )
        setting_key_registry.register(sk)

        # sv = SettingValue.objects.create(key=sk, value=True)
        sv = SettingValue(key=sk)
        sv.value = True
        sv.save()

        self.assertNoFormError(
            self.client.post(self._build_edit_url(sv),
                             data={}))  #False -> empty POST
        self.assertFalse(self.refresh(sv).value)
コード例 #5
0
ファイル: test_setting.py プロジェクト: mrjmad/creme_crm
    def test_edit_int(self):
        self.login()

        sk = SettingKey(
            id='persons-test_edit_int',
            description='Page size',
            app_label='persons',
            type=SettingKey.INT,
        )
        setting_key_registry.register(sk)

        size = 156
        sv = SettingValue(key=sk)
        sv.value = size
        sv.save()

        size += 15
        self.assertNoFormError(
            self.client.post(self._build_edit_url(sv), data={'value': size}))
        self.assertEqual(size, self.refresh(sv).value)
コード例 #6
0
    def test_blank(self):
        sk = SettingKey('creme_core-test_model_blank',
                        description=u'API key',
                        app_label='creme_core',
                        type=SettingKey.STRING,
                        blank=True,
                       )
        self._register_key(sk)

        # sv = SettingValue.objects.create(key=sk, value='')
        sv = SettingValue(key=sk)
        sv.value = ''
        sv.save()

        sv = self.refresh(sv)
        self.assertEqual('', sv.value_str)
        self.assertIsNone(sv.value)
        self.assertEqual('', sv.as_html)

        sv.value = None
        self.assertIsNone(sv.value)
コード例 #7
0
    def test_get_4_key02(self):
        "Key instance."
        sk = SettingKey(
            id='activities-test_get_4_key02',
            description='Display logo?',
            app_label='activities',
            type=SettingKey.BOOL,
        )
        self._register_key(sk)

        sv = SettingValue(key=sk)
        sv.value = True
        sv.save()

        pk = sv.pk

        with self.assertNumQueries(1):
            sv = SettingValue.objects.get_4_key(sk)

        self.assertIsInstance(sv, SettingValue)
        self.assertEqual(pk, sv.pk)
コード例 #8
0
    def test_get_4_keys03(self):
        "Default value."
        sk = SettingKey(
            id='activities-test_get_4_key03_1',
            description='Display logo?',
            app_label='activities',
            type=SettingKey.BOOL,
        )

        with self.assertLogs(level='CRITICAL') as log_cm:
            svalues = SettingValue.objects.get_4_keys({
                'key': sk,
                'default': False
            })

        messages = log_cm.output
        self.assertEqual(1, len(messages))
        self.assertIn('creme_populate', messages[0])

        sv = svalues.get(sk.id)
        self.assertEqual(sk.id, sv.key_id)
        self.assertIs(False, sv.value)
コード例 #9
0
ファイル: test_setting.py プロジェクト: mrjmad/creme_crm
    def test_edit_blank01(self):
        self.login()

        sk = SettingKey(
            id='persons-test_edit_blank01',
            description='API key',
            app_label='persons',
            type=SettingKey.STRING,
            blank=True,
        )
        setting_key_registry.register(sk)

        sv = SettingValue(key=sk)
        sv.value = '123-456-abc'
        sv.save()

        self.assertNoFormError(
            self.client.post(self._build_edit_url(sv), data={'value': ''}))

        sv = self.refresh(sv)
        self.assertEqual('', sv.value_str)
        self.assertIsNone(sv.value)
コード例 #10
0
    def test_type_bool(self):
        self.login()

        sk = SettingKey(id='activities-test_model_bool', description=u"Display logo ?",
                        app_label='activities', type=SettingKey.BOOL,
                       )
        self._register_key(sk)

        # sv = SettingValue.objects.create(key=sk, user=self.user, value=True)
        sv = SettingValue(key=sk)
        sv.value = True
        sv.save()

        sv = self.refresh(sv)
        self.assertIs(sv.value, True)
        self.assertEqual('<input type="checkbox" checked disabled/>{}'.format(_('Yes')), sv.as_html)

        sv.value = False
        sv.save()

        sv = self.refresh(sv)
        self.assertIs(sv.value, False)
        self.assertEqual('<input type="checkbox" disabled/>{}'.format(_('No')), sv.as_html)
コード例 #11
0
    def test_type_int(self):
        sk = SettingKey(id='persons-test_model_int', description=u"Page size",
                        app_label='persons', type=SettingKey.INT,
                       )
        self.assertFalse(sk.hidden)
        self.assertFalse(sk.blank)

        self._register_key(sk)

        size = 156
        # sv = SettingValue.objects.create(key=sk, user=None, value=size)
        sv = SettingValue(key=sk)
        sv.value = size
        sv.save()

        sv = self.refresh(sv)
        self.assertEqual(size, sv.value)
        self.assertEqual(size, sv.as_html)

        # ---
        size += 1
        sv.value = str(size)
        self.assertEqual(size, sv.value)
コード例 #12
0
ファイル: setting_keys.py プロジェクト: mrjmad/creme_crm
# -*- coding: utf-8 -*-

from django.utils.translation import gettext_lazy as _

from creme.creme_core.core.setting_key import SettingKey

from .constants import SETTING_CRUDITY_SANDBOX_BY_USER

sandbox_key = SettingKey(
    id=SETTING_CRUDITY_SANDBOX_BY_USER,
    description=_('Are waiting actions are by user?'),
    app_label='crudity',
    type=SettingKey.BOOL,
)
コード例 #13
0
# -*- coding: utf-8 -*-

from django.utils.translation import gettext_lazy as _

from creme.creme_core.core.setting_key import SettingKey

# from .constants import SETTING_USE_CURRENT_QUOTE

quote_key = SettingKey(
    # id=SETTING_USE_CURRENT_QUOTE,
    id='opportunities-use_current_quote',
    description=_("Use current associated quote to "
                  "determine an estimation of the opportunity's turnover"),
    app_label='opportunities',
    type=SettingKey.BOOL,
)
target_constraint_key = SettingKey(
    id='opportunities-target_constraint',
    description=_(
        'When selecting an Invoice/Quote/Sales order to link, only the '
        'ones which have the same target than the Opportunity are proposed.'),
    app_label='opportunities',
    type=SettingKey.BOOL,
)
emitter_constraint_key = SettingKey(
    id='opportunities-emitter_constraint',
    description=_(
        'When selecting an Invoice/Quote/Sales order to link, only the '
        'ones which have the same emitter than the Opportunity are proposed.'),
    app_label='opportunities',
    type=SettingKey.BOOL,
コード例 #14
0
ファイル: setting_keys.py プロジェクト: mrjmad/creme_crm-2.1
# -*- coding: utf-8 -*-

from django.utils.translation import gettext_lazy as _

from creme.creme_core.core.setting_key import SettingKey

from .constants import SETTING_EMAILCAMPAIGN_SENDER


emailcampaign_sender = SettingKey(
    id=SETTING_EMAILCAMPAIGN_SENDER,
    description=_('Allowed email campaign sender.'),
    app_label='emails',
    type=SettingKey.EMAIL,
)
コード例 #15
0
# -*- coding: utf-8 -*-

from django.utils.translation import gettext_lazy as _

from creme.creme_core.core.setting_key import SettingKey

# from . import constants

payment_info_key = SettingKey(
    # id=constants.DISPLAY_PAYMENT_INFO_ONLY_CREME_ORGA,
    id='billing-display_payment_info_only_creme_orga',
    description=_('Display payment information block only on the '
                  'detailview of organisations managed by Creme'),
    app_label='billing',
    type=SettingKey.BOOL,
)
button_redirection_key = SettingKey(
    id='billing-button_redirection',
    description=_(
        'Go the detailview of the billing document created '
        'with the button (of the button bar) after the creation? '
        '(ie: «No» means «remain on the Contact/Organisation detailview»)'),
    app_label='billing',
    type=SettingKey.BOOL,
)
コード例 #16
0
# -*- coding: utf-8 -*-

from django.utils.translation import gettext_lazy as _

from creme.creme_core.core.setting_key import SettingKey

from . import constants

review_key = SettingKey(
    id=constants.SETTING_DISPLAY_REVIEW,
    description=_('Display minutes information in activities blocks'),
    app_label='activities',
    type=SettingKey.BOOL,
)
auto_subjects_key = SettingKey(
    id=constants.SETTING_AUTO_ORGA_SUBJECTS,
    description=_('Add automatically the organisations of the participants as '
                  'activities subjects'),
    app_label='activities',
    type=SettingKey.BOOL,
)
form_user_messages_key = SettingKey(
    id=constants.SETTING_FORM_USERS_MSG,
    description=_(
        'In the activities form, propose to keep users informed '
        'with user messages (the application «Assistants» is needed)'),
    app_label='activities',
    type=SettingKey.BOOL,
)
コード例 #17
0
# -*- coding: utf-8 -*-

from django.utils.text import format_lazy
from django.utils.translation import gettext_lazy as _

from creme.creme_core.core.setting_key import SettingKey

LOCATION_MAP_URL = SettingKey(
    id='mobile-location_map_url',
    description=format_lazy(
        ('{title}\n'
         ' − https://www.openstreetmap.org/search?query={{search}}\n'
         ' − https://www.openstreetmap.org#map=18/{{lat}}/{{lng}}\n'
         ' − https://www.google.com/maps/?q={{search}}\n'
         ' − https://maps.google.com/maps/place/{{lat}},{{lng}}'),
        title=_(
            "URL pattern to map & geolocation services.\n"
            "Use {search} placeholder for the address and if geolocation is enabled, "
            "{lat} & {lng} coordinates can be used too.")),
    app_label='mobile',
    type=SettingKey.STRING,
)
コード例 #18
0
# -*- coding: utf-8 -*-

from django.utils.translation import gettext_lazy as _

from creme.creme_core.core.setting_key import SettingKey

from .constants import MIN_HOUR_4_TODO_REMINDER

todo_reminder_key = SettingKey(
    id=MIN_HOUR_4_TODO_REMINDER,
    description=_('Minimum hour to send the mails related to Todos'),
    app_label='assistants',
    type=SettingKey.HOUR,
)
コード例 #19
0
# -*- coding: utf-8 -*-

from django.utils.translation import ugettext_lazy as _

from creme.creme_core.core.setting_key import SettingKey


NEIGHBOURHOOD_DISTANCE = SettingKey(id='geolocation-neighbourhood_distance',
                                    description=_(u'Maximum distance to find neighbours in meters'),
                                    app_label='geolocation',
                                    type=SettingKey.INT,
                                   )

GOOGLE_API_KEY = SettingKey(id='geolocation-google_api_key',
                            description=_(u'Google Maps ® API key (optional)'),
                            app_label='geolocation',
                            type=SettingKey.STRING,
                            blank=True,
                           )
コード例 #20
0
# -*- coding: utf-8 -*-

from django.utils.translation import ugettext_lazy as _

from creme.creme_core.core.setting_key import SettingKey

from . import constants

orga_approaches_key = SettingKey(
    id=constants.DISPLAY_ONLY_ORGA_COM_APPROACH_ON_ORGA_DETAILVIEW,
    description=_(
        u"Display only organisations' commercial approaches on organisations' file."
        u" (Otherwise, display organisations', managers', employees', "
        u"related opportunities' commercial approaches)"),
    app_label='commercial',
    type=SettingKey.BOOL,
)