Skip to content

Commit 4a9a929

Browse files
authored
Merge pull request #146 from syslabcom/scrum-1199-schema-field-order-2
Different approach to field ordering
2 parents bc6bd9a + 8e722f3 commit 4a9a929

15 files changed

+210
-119
lines changed

src/recensio/plone/behaviors/article.py

-7
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,6 @@ class IArticle(model.Schema):
3737
required=False,
3838
)
3939

40-
directives.order_after(
41-
heading__page_number_of_article_in_journal_or_edited_volume="IArticle.translatedTitle"
42-
)
4340
heading__page_number_of_article_in_journal_or_edited_volume = schema.TextLine(
4441
title=_(
4542
"description_page_number_of_article_in_journal_or_edited_volume",
@@ -54,15 +51,11 @@ class IArticle(model.Schema):
5451
heading__page_number_of_article_in_journal_or_edited_volume="display"
5552
)
5653

57-
directives.order_after(
58-
pageStartOfArticle="IArticle.heading__page_number_of_article_in_journal_or_edited_volume"
59-
)
6054
pageStartOfArticle = schema.Int(
6155
title=_("label_page_start_of_article_in_journal_or_edited_volume"),
6256
required=False,
6357
)
6458

65-
directives.order_after(pageEndOfArticle="IArticle.pageStartOfArticle")
6659
pageEndOfArticle = schema.Int(
6760
title=_("label_page_end_of_article_in_journal_or_edited_volume"),
6861
required=False,

src/recensio/plone/behaviors/authors.py

-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ class IAuthors(model.Schema):
2020
RelatedItemsFieldWidget,
2121
pattern_options={"mode": "auto", "favorites": []},
2222
)
23-
directives.order_after(authors="IEditorial.help_authors_or_editors")
2423
authors = RelationList(
2524
title=_("Authors"),
2625
defaultFactory=list,

src/recensio/plone/behaviors/base.py

+10-16
Original file line numberDiff line numberDiff line change
@@ -81,14 +81,22 @@ class IBase(model.Schema):
8181
allowed_mime_types=["text/html"],
8282
)
8383

84-
directives.order_after(urn="IBase.canonical_uri")
84+
directives.order_after(canonical_uri="IBaseReview.customCitation")
85+
canonical_uri = schema.TextLine(
86+
title=_("Original Source URL"),
87+
description=_(
88+
"description_uri",
89+
default="Please fill in only after consultation with the recensio.net team",
90+
),
91+
required=False,
92+
)
93+
8594
urn = schema.TextLine(
8695
title=_("URN"),
8796
description=_("description_urn", default="Filled in by the editorial staff"),
8897
required=False,
8998
)
9099

91-
directives.order_after(bv="IBase.urn")
92100
bv = schema.TextLine(
93101
title=_("BV Number"),
94102
description=_(
@@ -97,7 +105,6 @@ class IBase(model.Schema):
97105
required=False,
98106
)
99107

100-
directives.order_after(ppn="IBase.bv")
101108
ppn = schema.TextLine(
102109
title=_("PPN"),
103110
description=_(
@@ -106,19 +113,8 @@ class IBase(model.Schema):
106113
required=False,
107114
)
108115

109-
directives.order_after(canonical_uri="IBaseReview.customCitation")
110-
canonical_uri = schema.TextLine(
111-
title=_("Original Source URL"),
112-
description=_(
113-
"description_uri",
114-
default="Please fill in only after consultation with the recensio.net team",
115-
),
116-
required=False,
117-
)
118-
119116
# TODO
120117
# size=10,
121-
directives.order_after(ddcSubject="ICoverPicture.coverPicture")
122118
ddcSubject = schema.List(
123119
title=_("ddc subject"),
124120
value_type=schema.Choice(vocabulary="recensio.plone.vocabularies.topic_values"),
@@ -128,7 +124,6 @@ class IBase(model.Schema):
128124

129125
# TODO
130126
# size=10,
131-
directives.order_after(ddcTime="IBase.ddcSubject")
132127
ddcTime = schema.List(
133128
title=_("ddc time"),
134129
value_type=schema.Choice(vocabulary="recensio.plone.vocabularies.epoch_values"),
@@ -138,7 +133,6 @@ class IBase(model.Schema):
138133

139134
# TODO
140135
# size=10,
141-
directives.order_after(ddcPlace="IBase.ddcTime")
142136
ddcPlace = schema.List(
143137
title=_("ddc place"),
144138
value_type=schema.Choice(

src/recensio/plone/behaviors/book_review.py

+17-21
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,6 @@ class IAdditionalTitleRowSchema(Interface):
2323

2424
@provider(IFormFieldProvider)
2525
class IBookReview(model.Schema):
26-
subtitle = schema.TextLine(
27-
title=_("Subtitle"),
28-
required=False,
29-
)
30-
31-
additionalTitles = schema.List(
32-
title=_("Paralleltitel (andere Sprachen)"),
33-
value_type=DictRow(schema=IAdditionalTitleRowSchema, required=False),
34-
required=False,
35-
defaultFactory=list,
36-
)
37-
directives.widget(additionalTitles=DataGridFieldFactory)
38-
textindexer.searchable("additionalTitles")
39-
4026
isbn = schema.TextLine(
4127
title=_("ISBN"),
4228
description=_(
@@ -75,23 +61,33 @@ class IBookReview(model.Schema):
7561
title=_("DOI (Monographie)"),
7662
required=False,
7763
)
64+
65+
subtitle = schema.TextLine(
66+
title=_("Subtitle"),
67+
required=False,
68+
)
69+
70+
additionalTitles = schema.List(
71+
title=_("Paralleltitel (andere Sprachen)"),
72+
value_type=DictRow(schema=IAdditionalTitleRowSchema, required=False),
73+
required=False,
74+
defaultFactory=list,
75+
)
76+
directives.widget(additionalTitles=DataGridFieldFactory)
77+
textindexer.searchable("additionalTitles")
78+
7879
# customizations
7980
directives.order_after(subtitle="ITextReview.title")
8081
directives.order_after(additionalTitles="IBookReview.subtitle")
81-
directives.order_before(isbn="IBase.languageReviewedText")
82-
directives.order_before(isbn_online="IBase.languageReviewedText")
83-
directives.order_before(url_monograph="IBase.languageReviewedText")
84-
directives.order_before(urn_monograph="IBase.languageReviewedText")
85-
directives.order_before(doi_monograph="IBase.languageReviewedText")
8682
fieldset_reviewed_text(
8783
[
88-
"subtitle",
89-
"additionalTitles",
9084
"isbn",
9185
"isbn_online",
9286
"url_monograph",
9387
"urn_monograph",
9488
"doi_monograph",
89+
"subtitle",
90+
"additionalTitles",
9591
],
9692
)
9793

src/recensio/plone/behaviors/cover_picture.py

-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
from plone.autoform import directives
21
from plone.autoform.interfaces import IFormFieldProvider
32
from plone.dexterity.interfaces import IDexterityContent
43
from plone.namedfile.field import NamedBlobImage
@@ -16,7 +15,6 @@ class ICoverPicture(model.Schema):
1615
title=_("Cover picture"),
1716
required=False,
1817
)
19-
directives.order_after(coverPicture="IPrintedReview.placeOfPublication")
2018
fieldset_reviewed_text(["coverPicture"])
2119

2220

@@ -26,7 +24,6 @@ class ICoverPictureEditedVolume(model.Schema):
2624
title=_("Cover picture"),
2725
required=False,
2826
)
29-
directives.order_after(coverPicture="IPrintedReviewEditedVolume.publisherOnline")
3027
fieldset_edited_volume(["coverPicture"])
3128

3229

src/recensio/plone/behaviors/editorial.py

+1-18
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
@provider(IFormFieldProvider)
2121
class IEditorial(model.Schema):
22-
directives.order_after(help_authors_or_editors="IBase.languageReviewedText")
22+
directives.order_before(help_authors_or_editors="IAuthors.authors")
2323
help_authors_or_editors = schema.TextLine(
2424
title=_(
2525
"help_authors_or_editors",
@@ -58,22 +58,6 @@ class IEditorial(model.Schema):
5858

5959
@provider(IFormFieldProvider)
6060
class IEditorialEditedVolume(model.Schema):
61-
directives.order_after(help_authors_or_editors="IBase.languageReviewedText")
62-
help_authors_or_editors = schema.TextLine(
63-
title=_(
64-
"help_authors_or_editors",
65-
default=(
66-
"Please fill in either authors OR editors "
67-
"(exception: Complete Works etc.)"
68-
),
69-
),
70-
required=False,
71-
)
72-
# This is just use to show a label in the form
73-
# XXX It is probably better to use a custom widget with a schema.Field,
74-
# but I have to think more about it
75-
directives.mode(help_authors_or_editors="display")
76-
7761
editorial = RelationList(
7862
title=_("label_editorial", default="Editor(s) of the presented monograph"),
7963
defaultFactory=list,
@@ -86,7 +70,6 @@ class IEditorialEditedVolume(model.Schema):
8670
pattern_options={"mode": "auto", "favorites": []},
8771
)
8872
# customizations
89-
directives.omitted("help_authors_or_editors")
9073
fieldset_edited_volume(
9174
[
9275
"editorial",

src/recensio/plone/behaviors/journal_review.py

+9-12
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,17 @@ class IJournalReview(model.Schema):
4545
required=False,
4646
)
4747

48-
directives.order_after(shortnameJournal="IReviewJournal.translatedTitleJournal")
48+
directives.order_after(shortnameJournal="translatedTitleJournal")
4949
shortnameJournal = schema.TextLine(
5050
title=_("Shortname"),
5151
required=False,
5252
)
5353

54+
officialYearOfPublication = schema.TextLine(
55+
title=_("Official year of publication (if different)"),
56+
required=False,
57+
)
58+
5459
volumeNumber = schema.TextLine(
5560
title=_("Vol."),
5661
required=False,
@@ -60,17 +65,9 @@ class IJournalReview(model.Schema):
6065
title=_("Number"),
6166
required=False,
6267
)
63-
64-
officialYearOfPublication = schema.TextLine(
65-
title=_("Official year of publication (if different)"),
66-
required=False,
67-
)
6868
# customizations
69-
directives.order_before(issn="IBase.languageReviewedText")
70-
directives.order_before(issn_online="IBase.languageReviewedText")
71-
directives.order_before(url_journal="IBase.languageReviewedText")
72-
directives.order_before(urn_journal="IBase.languageReviewedText")
73-
directives.order_before(doi_journal="IBase.languageReviewedText")
69+
directives.order_after(issueNumber="IPrintedReview.yearOfPublication")
70+
directives.order_after(volumeNumber="IPrintedReview.yearOfPublication")
7471
directives.order_after(officialYearOfPublication="IPrintedReview.yearOfPublication")
7572
fieldset_reviewed_text(
7673
[
@@ -122,7 +119,7 @@ class IJournalArticleReview(model.Schema):
122119
required=False,
123120
)
124121

125-
directives.order_after(shortnameJournal="IReviewJournal.translatedTitleJournal")
122+
directives.order_after(shortnameJournal="translatedTitleJournal")
126123
shortnameJournal = schema.TextLine(
127124
title=_("Shortname"),
128125
required=False,

src/recensio/plone/behaviors/printed_review.py

-24
Original file line numberDiff line numberDiff line change
@@ -57,15 +57,6 @@ class IPrintedReview(model.Schema):
5757
required=False,
5858
)
5959
directives.omitted("idBvb")
60-
# customizations
61-
directives.order_after(yearOfPublication="IJournalReview.shortnameJournal")
62-
directives.order_after(placeOfPublication="IJournalReview.issueNumber")
63-
directives.order_after(publisher="IPrintedReview.placeOfPublication")
64-
directives.order_after(yearOfPublicationOnline="IPrintedReview.publisher")
65-
directives.order_after(
66-
placeOfPublicationOnline="IPrintedReview.yearOfPublicationOnline"
67-
)
68-
directives.order_after(publisherOnline="IPrintedReview.placeOfPublicationOnline")
6960
fieldset_reviewed_text(
7061
[
7162
# "heading_presented_work",
@@ -126,21 +117,6 @@ class IPrintedReviewEditedVolume(model.Schema):
126117
required=False,
127118
)
128119
directives.omitted("idBvb")
129-
# customizations
130-
directives.order_after(yearOfPublication="IJournalArticleReview.shortnameJournal")
131-
directives.order_after(
132-
placeOfPublication="IPrintedReviewEditedVolume.yearOfPublication"
133-
)
134-
directives.order_after(publisher="IPrintedReviewEditedVolume.placeOfPublication")
135-
directives.order_after(
136-
yearOfPublicationOnline="IPrintedReviewEditedVolume.publisher"
137-
)
138-
directives.order_after(
139-
placeOfPublicationOnline="IPrintedReviewEditedVolume.yearOfPublicationOnline"
140-
)
141-
directives.order_after(
142-
publisherOnline="IPrintedReviewEditedVolume.placeOfPublicationOnline"
143-
)
144120
fieldset_edited_volume(
145121
[
146122
# "heading_presented_work",

src/recensio/plone/behaviors/serial.py

-7
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
from plone.autoform import directives
21
from plone.autoform.interfaces import IFormFieldProvider
32
from plone.dexterity.interfaces import IDexterityContent
43
from plone.supermodel import model
@@ -12,19 +11,16 @@
1211

1312
@provider(IFormFieldProvider)
1413
class ISerial(model.Schema):
15-
directives.order_after(series="IPrintedReview.publisherOnline")
1614
series = schema.TextLine(
1715
title=_("Series"),
1816
required=False,
1917
)
2018

21-
directives.order_after(seriesVol="ISerial.series")
2219
seriesVol = schema.TextLine(
2320
title=_("Series (vol.)"),
2421
required=False,
2522
)
2623

27-
directives.order_after(pages="ISerial.seriesVol")
2824
pages = schema.TextLine(
2925
title=_("Pages"),
3026
required=False,
@@ -35,19 +31,16 @@ class ISerial(model.Schema):
3531

3632
@provider(IFormFieldProvider)
3733
class ISerialEditedVolume(model.Schema):
38-
directives.order_after(series="IPrintedReview.publisherOnline")
3934
series = schema.TextLine(
4035
title=_("Series"),
4136
required=False,
4237
)
4338

44-
directives.order_after(seriesVol="ISerial.series")
4539
seriesVol = schema.TextLine(
4640
title=_("Series (vol.)"),
4741
required=False,
4842
)
4943

50-
directives.order_after(pages="ISerial.seriesVol")
5144
pages = schema.TextLine(
5245
title=_("Pages"),
5346
required=False,

src/recensio/plone/behaviors/text_review.py

+3-4
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,7 @@
1313

1414
@provider(IFormFieldProvider)
1515
class ITextReview(model.Schema):
16-
directives.order_after(title="IAuthors.authors")
17-
title = schema.TextLine(title=_DX("label_title", default="Title"), required=True)
18-
1916
directives.widget("languageReviewedText", SelectFieldWidget)
20-
directives.order_before(languageReviewedText="IAuthors.authors")
2117
languageReviewedText = schema.List(
2218
title=_("Language(s) (text)"),
2319
value_type=schema.Choice(
@@ -26,6 +22,9 @@ class ITextReview(model.Schema):
2622
required=False,
2723
defaultFactory=list,
2824
)
25+
26+
title = schema.TextLine(title=_DX("label_title", default="Title"), required=True)
27+
2928
fieldset_reviewed_text(
3029
[
3130
"languageReviewedText",

0 commit comments

Comments
 (0)