Skip to content

Commit 46e78f2

Browse files
committed
dates
1 parent dad8b14 commit 46e78f2

File tree

2 files changed

+47
-5
lines changed

2 files changed

+47
-5
lines changed

cs/publiccontracts/contract.py

+32-3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from datetime import datetime
12
from Acquisition import aq_parent
23
from cs.publiccontracts import MessageFactory as _
34
from five import grok
@@ -7,7 +8,29 @@
78
from zope import schema
89
from zope.interface import alsoProvides
910
# Interface class; used to define content-type schema.
10-
11+
from zope.interface import Interface
12+
try:
13+
from collective.z3cform.datagridfield import DictRow
14+
from collective.z3cform.datagridfield.datagridfield import \
15+
DataGridFieldFactory
16+
DictRow # pyflakes
17+
DataGridFieldFactory # pyflakes
18+
USE_DATAGRID = True
19+
except ImportError:
20+
from zope.schema import Object as DictRow
21+
DataGridFieldFactory = None
22+
USE_DATAGRID = False
23+
24+
class IDatesRowSchema(Interface):
25+
title = schema.TextLine(
26+
title=_(u'Date title'),
27+
description=_(u'Date title'),
28+
required=False,
29+
)
30+
day = schema.Datetime(
31+
title=_(u'Day'),
32+
required=False,
33+
)
1134

1235
class IContract(form.Schema, IImageScaleTraversable):
1336
"""
@@ -65,6 +88,13 @@ class IContract(form.Schema, IImageScaleTraversable):
6588
required=False,
6689
)
6790

91+
if DataGridFieldFactory is not None:
92+
form.widget(dates=DataGridFieldFactory)
93+
dates = schema.List(title=u"Dates",
94+
required=False,
95+
value_type=DictRow(title=u"Dates", schema=IDatesRowSchema),
96+
default=[{'title': '', 'day': datetime.now()}])
97+
6898
try:
6999
from plone.multilingualbehavior.interfaces import ILanguageIndependentField
70100
alsoProvides(IContract['file_number'], ILanguageIndependentField)
@@ -119,7 +149,6 @@ def file_processing_string(self):
119149
return None
120150

121151
def file_state_string(self):
122-
123152
file_state_value = self.file_state
124153
contracts_folder = aq_parent(self)
125154
contracts_folder_states = contracts_folder.states
@@ -142,4 +171,4 @@ def contract_state_index(self):
142171
# The view will render when you request a content object with this
143172
# interface with "/@@view" appended unless specified otherwise
144173
# using grok.name below.
145-
# This will make this view the default view for your content-type
174+
# This will make this view the default view for your content-type

cs/publiccontracts/templates/contractview.pt

+15-2
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
file_state context/file_state_string;
4343
info context/info;
4444
"
45-
tal:condition="file_type_string|file_procedure_string|file_processing|file_state|info">
45+
tal:condition="python:file_type_string or file_procedure_string or file_processing or file_state or info">
4646

4747
<tal:define condition="file_type_string">
4848
<dt i18n:translate="file_type">file_type</dt>
@@ -66,10 +66,23 @@
6666

6767
<tal:condition tal:condition="info">
6868
<dt i18n:translate="info">info</dt>
69-
<dd tal:content="structure context/info/output"></dd>
69+
<dd class="info" tal:content="structure context/info/output"></dd>
7070
</tal:condition>
7171
</dl>
7272

73+
<div class="dates" tal:condition="context/dates">
74+
<h2 i18n:translate="dates">Dates</h2>
75+
<dl class="contract-extra-dates">
76+
<tal:repeat tal:repeat="date context/dates">
77+
<dt tal:content="date/title"></dt>
78+
<dd>
79+
<tal:replace tal:replace="python:context.toLocalizedTime(date['day'])">
80+
</tal:replace>
81+
</dd>
82+
</tal:repeat>
83+
</dl>
84+
</div>
85+
7386
<tal:define define="files context/files" tal:condition="files">
7487
<h2 i18n:translate="files">Files</h2>
7588

0 commit comments

Comments
 (0)