Skip to content

Commit 383e21d

Browse files
authored
Merge pull request #37 from plone/feature-sponsor-type
Feature sponsor type
2 parents cfe3f04 + 8315e01 commit 383e21d

File tree

10 files changed

+202
-19
lines changed

10 files changed

+202
-19
lines changed

.github/workflows/backend.yml

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -72,19 +72,6 @@ jobs:
7272
base_dir: 'backend'
7373
check: 'flake8'
7474

75-
isort:
76-
runs-on: ubuntu-latest
77-
needs:
78-
- meta
79-
steps:
80-
- name: Checkout codebase
81-
uses: actions/checkout@v4
82-
83-
- name: Run check
84-
uses: plone/code-analysis-action@v2
85-
with:
86-
base_dir: 'backend'
87-
check: 'isort'
8875

8976
zpretty:
9077
runs-on: ubuntu-latest
@@ -134,7 +121,6 @@ jobs:
134121
- meta
135122
- black
136123
- flake8
137-
- isort
138124
- zpretty
139125
- tests
140126
permissions:

backend/.pre-commit-config.yaml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,6 @@ repos:
1111
hooks:
1212
- id: pyupgrade
1313
args: [--py38-plus]
14-
- repo: https://github.com/pycqa/isort
15-
rev: 5.12.0
16-
hooks:
17-
- id: isort
1814
- repo: https://github.com/psf/black
1915
rev: 23.9.1
2016
hooks:
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# from plone.app.textfield import RichText
2+
# from plone.autoform import directives
3+
from plone.dexterity.content import Container
4+
from plone.namedfile import field as namedfile
5+
from plone.supermodel import model
6+
from tagung.plone.de import _
7+
8+
# from plone.supermodel.directives import fieldset
9+
# from z3c.form.browser.radio import RadioFieldWidget
10+
from zope import schema
11+
from zope.interface import implementer
12+
13+
14+
class ISponsor(model.Schema):
15+
"""Marker interface and Dexterity Python Schema for Sponsor"""
16+
17+
level = schema.Choice(
18+
title=_(
19+
"Level",
20+
),
21+
description=_(
22+
"",
23+
),
24+
vocabulary="tagung.plone.de.Levels",
25+
default="Organizer",
26+
# defaultFactory=get_default_level,
27+
required=True,
28+
readonly=False,
29+
)
30+
31+
# Make sure you import: plone.namedfile.field as namedfile
32+
logo = namedfile.NamedBlobImage(
33+
title=_(
34+
"Logo",
35+
),
36+
description=_(
37+
"",
38+
),
39+
required=True,
40+
readonly=False,
41+
)
42+
43+
link = schema.URI(
44+
title=_(
45+
"Link",
46+
),
47+
description=_(
48+
"",
49+
),
50+
default="https://",
51+
required=False,
52+
readonly=False,
53+
)
54+
55+
56+
@implementer(ISponsor)
57+
class Sponsor(Container):
58+
"""Content-type class for ISponsor"""
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<model xmlns="http://namespaces.plone.org/supermodel/schema"
3+
xmlns:form="http://namespaces.plone.org/supermodel/form"
4+
xmlns:i18n="http://xml.zope.org/namespaces/i18n"
5+
xmlns:security="http://namespaces.plone.org/supermodel/security"
6+
i18n:domain="tagung.plone.de"
7+
>
8+
<schema>
9+
</schema>
10+
</model>

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,11 @@
1818
title="Tagung: Add Talk"
1919
/>
2020

21+
<permission
22+
id="tagung.AddSponsor"
23+
title="Tagung: Add Sponsor"
24+
/>
25+
2126
</configure>
2227
</configure>
2328
</configure>

backend/src/tagung/plone/de/profiles/default/metadata.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,6 @@
55
<dependency>profile-plone.volto:default</dependency>
66
<dependency>profile-plone.app.caching:default</dependency>
77
<dependency>profile-plone.app.caching:with-caching-proxy</dependency>
8+
<dependency>profile-plone.app.dexterity:default</dependency>
89
</dependencies>
910
</metadata>

backend/src/tagung/plone/de/profiles/default/rolemap.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,15 @@
99
<role name="Manager" />
1010
<role name="Owner" />
1111
</permission>
12+
13+
<permission acquire="False"
14+
name="Tagung: Add Sponsor"
15+
>
16+
<role name="Manager" />
17+
<role name="Site Administrator" />
18+
<role name="Owner" />
19+
<role name="Contributor" />
20+
</permission>
21+
1222
</permissions>
1323
</rolemap>

backend/src/tagung/plone/de/profiles/default/types.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,8 @@
77
name="Talk"
88
/>
99

10+
<object meta_type="Dexterity FTI"
11+
name="Sponsor"
12+
/>
13+
1014
</object>
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<object xmlns:i18n="http://xml.zope.org/namespaces/i18n"
3+
meta_type="Dexterity FTI"
4+
name="Sponsor"
5+
i18n:domain="tagung.plone.de"
6+
>
7+
8+
<!-- Basic properties -->
9+
<property name="title"
10+
i18n:translate=""
11+
>Sponsor</property>
12+
<property name="description"
13+
i18n:translate=""
14+
>A Sponsor Content-Type</property>
15+
16+
<property name="allow_discussion">False</property>
17+
<property name="factory">Sponsor</property>
18+
<property name="icon_expr">string:puzzle</property>
19+
<property name="link_target" />
20+
21+
<!-- Hierarchy control -->
22+
<property name="global_allow">True</property>
23+
<property name="filter_content_types">True</property>
24+
<property name="allowed_content_types">
25+
<!--
26+
<element value="Document" />
27+
<element value="File" />
28+
-->
29+
</property>
30+
<!-- Schema, class and security -->
31+
<property name="add_permission">tagung.AddSponsor</property>
32+
<property name="klass">tagung.plone.de.content.sponsor.Sponsor</property>
33+
<property name="model_file" />
34+
<property name="model_source" />
35+
<property name="schema">tagung.plone.de.content.sponsor.ISponsor</property>
36+
37+
<!-- Enabled behaviors -->
38+
<property name="behaviors"
39+
purge="false"
40+
>
41+
<!-- Details about all standard behaviors following can be read at
42+
https://docs.plone.org/external/plone.app.dexterity/docs/reference/standard-behaviours.html
43+
-->
44+
<element value="plone.basic" />
45+
<element value="plone.namefromtitle" />
46+
<element value="plone.allowdiscussion" />
47+
<element value="plone.excludefromnavigation" />
48+
<element value="plone.shortname" />
49+
<element value="plone.ownership" />
50+
<element value="plone.publication" />
51+
<element value="plone.categorization" />
52+
<element value="plone.locking" />
53+
<!--<element value="plone.leadimage"/>-->
54+
<!--<element value="plone.relateditems"/>-->
55+
<!--<element value="plone.richtext"/>-->
56+
<!--<element value="plone.tableofcontents"/>-->
57+
<!--<element value="plone.versioning" />-->
58+
<!--<element value="plone.translatable" />-->
59+
<!--<element value="plone.nextprevioustoggle" />-->
60+
<!--<element value="plone.nextpreviousenabled" />-->
61+
<!--<element value="plone.navigationroot" />-->
62+
<!--<element value="plone.selectablecontrainstypes" />-->
63+
</property>
64+
65+
<!-- View information -->
66+
<property name="add_view_expr">string:${folder_url}/++add++Sponsor</property>
67+
<property name="default_view">view</property>
68+
<property name="default_view_fallback">False</property>
69+
<property name="immediate_view">view</property>
70+
<property name="view_methods">
71+
<element value="view" />
72+
</property>
73+
74+
<!-- Method aliases -->
75+
<alias from="(Default)"
76+
to="(dynamic view)"
77+
/>
78+
<alias from="edit"
79+
to="@@edit"
80+
/>
81+
<alias from="sharing"
82+
to="@@sharing"
83+
/>
84+
<alias from="view"
85+
to="(selected layout)"
86+
/>
87+
88+
<!-- Actions -->
89+
<action action_id="view"
90+
category="object"
91+
condition_expr=""
92+
icon_expr="string:toolbar-action/view"
93+
title="View"
94+
url_expr="string:${object_url}"
95+
visible="True"
96+
i18n:attributes="title"
97+
i18n:domain="plone"
98+
>
99+
<permission value="View" />
100+
</action>
101+
<action action_id="edit"
102+
category="object"
103+
condition_expr="not:object/@@plone_lock_info/is_locked_for_current_user|python:True"
104+
icon_expr="string:toolbar-action/edit"
105+
title="Edit"
106+
url_expr="string:${object_url}/edit"
107+
visible="True"
108+
i18n:attributes="title"
109+
i18n:domain="plone"
110+
>
111+
<permission value="Modify portal content" />
112+
</action>
113+
114+
</object>

backend/tox.ini

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ deps =
4949
pre-commit
5050
commands =
5151
pre-commit run -a pyupgrade
52-
pre-commit run -a isort
5352
pre-commit run -a black
5453
pre-commit run -a zpretty
5554

0 commit comments

Comments
 (0)