Projet

Général

Profil

0003-misc-remove-studio-site-option-57260.patch

Lauréline Guérin, 24 septembre 2021 15:54

Télécharger (7,73 ko)

Voir les différences:

Subject: [PATCH 3/5] misc: remove studio site option (#57260)

 wcs/admin/settings.py     |  6 +-----
 wcs/admin/workflows.py    | 13 ++++---------
 wcs/backoffice/root.py    | 22 ++++++++++------------
 wcs/backoffice/studio.py  |  4 ----
 wcs/qommon/publisher.py   |  1 -
 wcs/wf/create_carddata.py |  6 ------
 6 files changed, 15 insertions(+), 37 deletions(-)
wcs/admin/settings.py
33 33
from quixote.directory import Directory
34 34
from quixote.html import TemplateIO, htmltext
35 35

  
36
from wcs.backoffice.studio import StudioDirectory
37 36
from wcs.blocks import BlockDef
38 37
from wcs.carddef import CardDef
39 38
from wcs.data_sources import NamedDataSource
......
708 707
            ('settings', _('Settings')),
709 708
        ]
710 709
        for k, v in admin_sections:
711
            if k == 'cards' and not StudioDirectory.is_visible():
712
                continue
713 710
            permissions.append(_(v))
714 711
            permission_keys.append(k)
715 712

  
......
985 982

  
986 983
        form = Form(enctype="multipart/form-data")
987 984
        form.add(CheckboxWidget, 'formdefs', title=_('Forms'), value=True)
988
        if StudioDirectory.is_visible():
989
            form.add(CheckboxWidget, 'carddefs', title=_('Card Models'), value=True)
985
        form.add(CheckboxWidget, 'carddefs', title=_('Card Models'), value=True)
990 986
        form.add(CheckboxWidget, 'workflows', title=_('Workflows'), value=True)
991 987
        form.add(CheckboxWidget, 'blockdefs', title=_('Fields Blocks'), value=True)
992 988
        if not get_cfg('sp', {}).get('idp-manage-roles'):
wcs/admin/workflows.py
27 27

  
28 28
from wcs.admin.categories import WorkflowCategoriesDirectory, get_categories
29 29
from wcs.backoffice.snapshots import SnapshotsDirectory
30
from wcs.backoffice.studio import StudioDirectory
31 30
from wcs.carddef import CardDef
32 31
from wcs.categories import WorkflowCategory
33 32
from wcs.formdata import Evolution
......
1922 1921
        for formdef in FormDef.select(lightweight=True):
1923 1922
            workflows_in_formdef_use.add(str(formdef.workflow_id))
1924 1923

  
1925
        if StudioDirectory.is_visible():
1926
            carddef_workflows = [CardDef.get_default_workflow()]
1927
            workflows_in_carddef_use = set(carddef_workflows[0].id)
1928
            for carddef in CardDef.select(lightweight=True):
1929
                workflows_in_carddef_use.add(str(carddef.workflow_id))
1930
        else:
1931
            carddef_workflows = []
1932
            workflows_in_carddef_use = set()
1924
        carddef_workflows = [CardDef.get_default_workflow()]
1925
        workflows_in_carddef_use = set(carddef_workflows[0].id)
1926
        for carddef in CardDef.select(lightweight=True):
1927
            workflows_in_carddef_use.add(str(carddef.workflow_id))
1933 1928

  
1934 1929
        shared_workflows = []
1935 1930
        unused_workflows = []
wcs/backoffice/root.py
56 56
    menu_items = [
57 57
        ('submission/', _('Submission')),
58 58
        ('management/', _('Management')),
59
        ('data/', _('Cards'), {'check_display_function': studio.is_visible}),
60
        ('studio/', _('Studio'), {'check_display_function': studio.is_visible}),
59
        ('data/', _('Cards')),
60
        ('studio/', _('Studio')),
61 61
        ('forms/', _('Forms Workshop'), {'sub': True}),
62
        ('cards/', _('Card Models'), {'sub': True, 'check_display_function': studio.is_visible}),
62
        ('cards/', _('Card Models'), {'sub': True}),
63 63
        ('workflows/', _('Workflows Workshop'), {'sub': True}),
64 64
        ('users/', _('Users'), {'check_display_function': roles.is_visible}),
65 65
        ('roles/', _('Roles'), {'check_display_function': roles.is_visible}),
......
252 252
        backoffice_url = get_publisher().get_backoffice_url()
253 253
        if not backoffice_url.endswith('/'):
254 254
            backoffice_url += '/'
255
        has_studio = self.studio.is_visible()
256 255
        for item in self.menu_items:
257 256
            if len(item) == 2:
258 257
                item = list(item) + [{}]
......
269 268
                label = v()
270 269
            else:
271 270
                label = _(v)
272
            if has_studio:
273
                if slug == 'forms':
274
                    label = misc.site_encode(pgettext('studio', 'Forms'))
275
                elif slug == 'cards':
276
                    label = misc.site_encode(pgettext('studio', 'Card Models'))
277
                elif slug == 'workflows':
278
                    label = misc.site_encode(pgettext('studio', 'Workflows'))
271
            if slug == 'forms':
272
                label = misc.site_encode(pgettext('studio', 'Forms'))
273
            elif slug == 'cards':
274
                label = misc.site_encode(pgettext('studio', 'Card Models'))
275
            elif slug == 'workflows':
276
                label = misc.site_encode(pgettext('studio', 'Workflows'))
279 277
            menu_items.append(
280 278
                {
281 279
                    'label': label,
282 280
                    'slug': slug,
283 281
                    'url': backoffice_url + k,
284
                    'sub': (options.get('sub') and has_studio) or False,
282
                    'sub': options.get('sub') or False,
285 283
                }
286 284
            )
287 285

  
wcs/backoffice/studio.py
42 42
            templates=['wcs/backoffice/studio.html'], context={'has_sidebar': True}, is_django_native=True
43 43
        )
44 44

  
45
    @classmethod
46
    def is_visible(cls, *args):
47
        return get_publisher().has_site_option('studio')
48

  
49 45
    def is_accessible(self, user):
50 46
        backoffice_root = get_publisher().get_backoffice_root()
51 47
        return (
wcs/qommon/publisher.py
390 390

  
391 391
    def has_site_option(self, option):
392 392
        defaults = {
393
            'studio': True,
394 393
            'external-workflow': True,
395 394
            'complex-data': True,
396 395
        }
wcs/wf/create_carddata.py
14 14
# You should have received a copy of the GNU General Public License
15 15
# along with this program; if not, see <http://www.gnu.org/licenses/>.
16 16

  
17
from quixote import get_publisher
18

  
19 17
from wcs.carddef import CardDef
20 18
from wcs.qommon import _
21 19
from wcs.wf.create_formdata import CreateFormdataWorkflowStatusItem, LinkedFormdataEvolutionPart
......
40 38
    varname_hint = _('This is used to get linked card in expressions.')
41 39
    user_association_option_label = _('User to associate to card')
42 40

  
43
    @classmethod
44
    def is_available(cls, workflow=None):
45
        return get_publisher().has_site_option('studio')
46

  
47 41
    def get_parameters(self):
48 42
        return (
49 43
            'formdef_slug',
50
-