1
+ from datetime import datetime
1
2
from Acquisition import aq_parent
2
3
from cs .publiccontracts import MessageFactory as _
3
4
from five import grok
7
8
from zope import schema
8
9
from zope .interface import alsoProvides
9
10
# 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
+ )
11
34
12
35
class IContract (form .Schema , IImageScaleTraversable ):
13
36
"""
@@ -65,6 +88,13 @@ class IContract(form.Schema, IImageScaleTraversable):
65
88
required = False ,
66
89
)
67
90
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
+
68
98
try :
69
99
from plone .multilingualbehavior .interfaces import ILanguageIndependentField
70
100
alsoProvides (IContract ['file_number' ], ILanguageIndependentField )
@@ -119,7 +149,6 @@ def file_processing_string(self):
119
149
return None
120
150
121
151
def file_state_string (self ):
122
-
123
152
file_state_value = self .file_state
124
153
contracts_folder = aq_parent (self )
125
154
contracts_folder_states = contracts_folder .states
@@ -142,4 +171,4 @@ def contract_state_index(self):
142
171
# The view will render when you request a content object with this
143
172
# interface with "/@@view" appended unless specified otherwise
144
173
# 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
0 commit comments