Passed
Push — 2.x ( 285083...cd4fe9 )
by Jordi
06:30
created

senaite.core.browser.user.personalpreferences   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 43
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 1
eloc 22
dl 0
loc 43
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A PersonalPreferencesPanel.updateWidgets() 0 4 1
1
# -*- coding: utf-8 -*-
2
3
from bika.lims import senaiteMessageFactory as _
4
from plone.app.users.browser.account import AccountPanelSchemaAdapter
5
from plone.app.users.browser.personalpreferences import \
6
    PersonalPreferencesPanel as Base
7
from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
8
from z3c.form.form import BaseForm
9
from zope.interface import Interface
10
from zope.schema import Choice
11
12
13
class IPersonalPreferences(Interface):
14
    """Personal Preferences Schema
15
16
    NOTE: Fields need equivalents in user properties!
17
    """
18
19
    timezone = Choice(
20
        title=_(u"label_timezone", default=u"Time zone"),
21
        description=_(u"help_timezone", default=u"Your time zone"),
22
        vocabulary="plone.app.vocabularies.AvailableTimezones",
23
        # vocabulary='plone.app.vocabularies.Timezones',
24
        required=False,
25
    )
26
27
28
class PersonalPreferencesPanelAdapter(AccountPanelSchemaAdapter):
29
    """Data manager that gets and sets any property mentioned
30
       in the schema to the property sheet
31
    """
32
    schema = IPersonalPreferences
33
34
35
class PersonalPreferencesPanel(Base):
36
    template = ViewPageTemplateFile("templates/account-panel.pt")
37
    schema = IPersonalPreferences
38
39
    def updateWidgets(self):
40
        # bypass the method of the base class, because it modifies schema
41
        # widgets that we removed
42
        BaseForm.updateWidgets(self)
43