Skip to content

Commit de92b41

Browse files
committed
integrate controlpanel, fix vocab names
1 parent 2c80ff9 commit de92b41

File tree

14 files changed

+225
-18
lines changed

14 files changed

+225
-18
lines changed

backend/src/tagung/plone/de/configure.zcml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,15 @@
1616
<include file="profiles.zcml" />
1717
<include file="permissions.zcml" />
1818

19-
<include package=".controlpanel" />
2019
<include package=".indexers" />
2120
<include package=".serializers" />
2221
<include package=".vocabularies" />
2322

2423
<!-- -*- extra stuff goes here -*- -->
2524

25+
<include package=".controlpanels" />
26+
27+
2628
<include package=".upgrades" />
2729

2830
</configure>

backend/src/tagung/plone/de/content/talk.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ class ITalk(model.Schema):
2222

2323
details = RichText(
2424
title=_("Details"),
25-
description=_("Description of the talk (max. 3000 characters)"),
25+
description=_(
26+
"Description of the talk (max. 3000 characters). Zum formatieren einen Text selektieren."
27+
),
2628
max_length=3000,
2729
required=True,
2830
)
@@ -32,15 +34,15 @@ class ITalk(model.Schema):
3234
audience = schema.Set(
3335
title=_("Audience"),
3436
value_type=schema.Choice(
35-
vocabulary="ploneconf.audience",
37+
vocabulary="tagung.talk.audience",
3638
),
3739
required=False,
3840
)
3941

4042
directives.write_permission(room="cmf.ReviewPortalContent")
4143
room = schema.Choice(
4244
title=_("Room"),
43-
vocabulary="ploneconf.room",
45+
vocabulary="tagung.talk.room",
4446
required=False,
4547
)
4648

@@ -66,8 +68,8 @@ class ITalk(model.Schema):
6668
required=False,
6769
)
6870

69-
twitter = schema.TextLine(
70-
title=_("Twitter name"),
71+
mastodon = schema.TextLine(
72+
title=_("Mastodon URL"),
7173
required=False,
7274
)
7375

File renamed without changes.

backend/src/tagung/plone/de/controlpanel/configure.zcml renamed to backend/src/tagung/plone/de/controlpanels/configure.zcml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,8 @@
77

88
<!-- -*- extra stuff goes here -*- -->
99

10+
<include package=".plone_tagung_control_panel" />
11+
12+
13+
1014
</configure>

backend/src/tagung/plone/de/controlpanels/plone_tagung_control_panel/__init__.py

Whitespace-only changes.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<configure
2+
xmlns="http://namespaces.zope.org/zope"
3+
xmlns:browser="http://namespaces.zope.org/browser"
4+
xmlns:i18n="http://namespaces.zope.org/i18n"
5+
xmlns:plone="http://namespaces.plone.org/plone"
6+
i18n_domain="tagung.plone.de"
7+
>
8+
9+
<browser:page
10+
name="plone_tagung_control_panel-controlpanel"
11+
for="Products.CMFPlone.interfaces.IPloneSiteRoot"
12+
class=".controlpanel.PloneTagungControlPanelView"
13+
permission="cmf.ManagePortal"
14+
layer="tagung.plone.de.interfaces.ITagungPloneDeLayer"
15+
/>
16+
17+
<include package="plone.restapi" />
18+
<adapter
19+
factory=".controlpanel.PloneTagungControlPanelConfigletPanel"
20+
name="plone_tagung_control_panel"
21+
/>
22+
23+
24+
</configure>
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
from datetime import date
2+
from plone.app.registry.browser.controlpanel import ControlPanelFormWrapper
3+
from plone.app.registry.browser.controlpanel import RegistryEditForm
4+
from plone.restapi.controlpanels import RegistryConfigletPanel
5+
from plone.z3cform import layout
6+
from tagung.plone.de import _
7+
from tagung.plone.de.interfaces import ITagungPloneDeLayer
8+
from zope import schema
9+
from zope.component import adapter
10+
from zope.interface import Interface
11+
12+
13+
class IPloneTagungControlPanel(Interface):
14+
date_of_conference = schema.Date(
15+
title=_("First day of the conference"),
16+
required=False,
17+
default=date(2025, 3, 1),
18+
)
19+
20+
type_of_talk = schema.List(
21+
title=_("Available types for talks"),
22+
default=[
23+
"Keynote",
24+
"Podiumsdiskussion",
25+
"Lightning Talk",
26+
"Kurzvortrag (25 min)",
27+
"Open Space (Biete Impulse)",
28+
"Open Space (Suche Impulse)",
29+
"Rahmenprogramm",
30+
],
31+
missing_value=None,
32+
required=False,
33+
value_type=schema.TextLine(),
34+
)
35+
36+
room = schema.List(
37+
title=_("Available Rooms for the conference"),
38+
default=["101", "201", "Auditorium"],
39+
missing_value=None,
40+
required=False,
41+
value_type=schema.TextLine(),
42+
)
43+
44+
audience = schema.List(
45+
title=_("Available audiences for talks"),
46+
default=[
47+
"Einsteiger:in",
48+
"Integrator:in",
49+
"Entwickler:in",
50+
"Designer:in",
51+
"Anwender:in",
52+
"Universität",
53+
],
54+
missing_value=None,
55+
required=False,
56+
value_type=schema.TextLine(),
57+
)
58+
59+
60+
class PloneTagungControlPanel(RegistryEditForm):
61+
schema = IPloneTagungControlPanel
62+
schema_prefix = "plonetagung"
63+
label = _("Plone Tagung Control Panel")
64+
65+
66+
PloneTagungControlPanelView = layout.wrap_form(
67+
PloneTagungControlPanel, ControlPanelFormWrapper
68+
)
69+
70+
71+
@adapter(Interface, ITagungPloneDeLayer)
72+
class PloneTagungControlPanelConfigletPanel(RegistryConfigletPanel):
73+
"""Control Panel endpoint"""
74+
75+
schema = IPloneTagungControlPanel
76+
configlet_id = "plone_tagung_control_panel-controlpanel"
77+
configlet_category_id = "Products"
78+
title = _("Plone Tagung Control Panel")
79+
group = ""
80+
schema_prefix = "plonetagung"

backend/src/tagung/plone/de/interfaces.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
from zope.publisher.interfaces.browser import IDefaultBrowserLayer
44

55

6-
class IBrowserLayer(IDefaultBrowserLayer):
6+
class ITagungPloneDeLayer(IDefaultBrowserLayer):
77
"""Marker interface that defines a browser layer."""
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<layers>
3-
<layer interface="tagung.plone.de.interfaces.IBrowserLayer"
3+
<layer interface="tagung.plone.de.interfaces.ITagungPloneDeLayer"
44
name="tagung.plone.de"
55
/>
66
</layers>
Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,34 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<object name="portal_catalog">
3-
<!-- Index
43
<index meta_type="FieldIndex"
5-
name="industry"
4+
name="type_of_talk"
65
>
7-
<indexed_attr value="industry" />
6+
<indexed_attr value="type_of_talk" />
87
</index>
9-
-->
10-
<!-- Metadata
11-
<column value="industry" />
12-
-->
8+
<index meta_type="FieldIndex"
9+
name="speaker"
10+
>
11+
<indexed_attr value="speaker" />
12+
</index>
13+
<index meta_type="KeywordIndex"
14+
name="audience"
15+
>
16+
<indexed_attr value="audience" />
17+
</index>
18+
<index meta_type="FieldIndex"
19+
name="room"
20+
>
21+
<indexed_attr value="room" />
22+
</index>
23+
<index meta_type="BooleanIndex"
24+
name="featured"
25+
>
26+
<indexed_attr value="featured" />
27+
</index>
28+
29+
<column value="audience" />
30+
<column value="type_of_talk" />
31+
<column value="speaker" />
32+
<column value="room" />
33+
<column value="featured" />
1334
</object>

0 commit comments

Comments
 (0)