| 79 | | label="Document type", |
|---|
| 80 | | label_msgid='PloneXL8_label_documentType', |
|---|
| 81 | | i18n_domain='PloneXL8', |
|---|
| 82 | | ), |
|---|
| 83 | | enforceVocabulary=True, |
|---|
| 84 | | searchable=1, |
|---|
| 85 | | vocabulary=['Public SF', 'Internal SF', 'Babels'], |
|---|
| 86 | | default='Public SF', |
|---|
| 87 | | required=True, |
|---|
| 88 | | languageIndependent=1 |
|---|
| 89 | | ), |
|---|
| 90 | | |
|---|
| 91 | | #NOTE: ideally, the vocabulary would be dynamically generated and |
|---|
| 92 | | #managed with ATVocabularyManager, but I can't get ordering to |
|---|
| 93 | | #work correctly. |
|---|
| 94 | | StringField( |
|---|
| 95 | | name='urgency', |
|---|
| 96 | | index="FieldIndex:schema", |
|---|
| 97 | | widget=SelectionWidget( |
|---|
| 98 | | label="Urgency", |
|---|
| 99 | | label_msgid='PloneXL8_label_urgency', |
|---|
| 100 | | i18n_domain='PloneXL8', |
|---|
| 101 | | ), |
|---|
| 102 | | enforceVocabulary=True, |
|---|
| 103 | | searchable=1, |
|---|
| 104 | | vocabulary=['Normal', 'Urgent', 'Super Urgent'], |
|---|
| 105 | | default='Normal', |
|---|
| 106 | | required=True, |
|---|
| 107 | | languageIndependent=1 |
|---|
| 108 | | ), |
|---|
| 109 | | |
|---|
| 110 | | DateTimeField( |
|---|
| 111 | | name='dueDate', |
|---|
| 112 | | index="DateRangeIndex:schema", |
|---|
| 113 | | widget=CalendarWidget( |
|---|
| 114 | | label="Translation due date", |
|---|
| 115 | | label_msgid='PloneXL8_label_dueDate', |
|---|
| | 76 | label="Language of original document", |
|---|
| | 77 | label_msgid='PloneXL8_label_originalLang', |
|---|
| 119 | | searchable=1 |
|---|
| 120 | | ), |
|---|
| 121 | | |
|---|
| 122 | | DateTimeField( |
|---|
| 123 | | name='proofDueDate', |
|---|
| 124 | | index="DateRangeIndex:schema", |
|---|
| 125 | | widget=CalendarWidget( |
|---|
| 126 | | label="Translation proofreading due date", |
|---|
| 127 | | label_msgid='PloneXL8_label_proofDueDate', |
|---|
| 128 | | i18n_domain='PloneXL8', |
|---|
| 129 | | ), |
|---|
| 130 | | languageIndependent=1, |
|---|
| 131 | | searchable=1 |
|---|
| 132 | | ), |
|---|
| 133 | | |
|---|
| 134 | | StringField( |
|---|
| 135 | | name='isSource', |
|---|
| 136 | | index="FieldIndex:schema", |
|---|
| 137 | | widget=StringWidget( |
|---|
| 138 | | label="Original document?", |
|---|
| 139 | | visible=0, |
|---|
| 140 | | label_msgid='PloneXL8_label_isSource', |
|---|
| 141 | | i18n_domain='PloneXL8', |
|---|
| 142 | | ), |
|---|
| 143 | | enforceVocabulary=1, |
|---|
| 144 | | searchable=1, |
|---|
| 145 | | vocabulary=['Yes', 'No'], |
|---|
| 146 | | default="Yes", |
|---|
| 147 | | required=1, |
|---|
| 148 | | accessor="isDocSource" |
|---|
| 149 | | ), |
|---|
| 150 | | |
|---|
| 151 | | #Make this default ATCT field disappear. There must be a better |
|---|
| 152 | | #way to do this. Do NOT change the 'Visible' field. |
|---|
| 153 | | StringField( |
|---|
| 154 | | name='relatedItems', |
|---|
| 155 | | default=['dummy',], |
|---|
| 156 | | widget=StringWidget( |
|---|
| 157 | | visible=0, |
|---|
| 158 | | label='Relateditems', |
|---|
| 159 | | label_msgid='PloneXL8_label_relatedItems', |
|---|
| 160 | | i18n_domain='PloneXL8', |
|---|
| 161 | | ), |
|---|
| 162 | | languageIndependent=1 |
|---|
| 163 | | ), |
|---|
| 164 | | |
|---|
| 165 | | #Make this default ATCT field disappear. There must be a better |
|---|
| 166 | | #way to do this. Do NOT change the 'visible' field. |
|---|
| 167 | | StringField( |
|---|
| 168 | | name='allowDiscussion', |
|---|
| 169 | | default=['dummy',], |
|---|
| 170 | | widget=StringWidget( |
|---|
| 171 | | visible=0, |
|---|
| 172 | | label='Allowdiscussion', |
|---|
| 173 | | label_msgid='PloneXL8_label_allowDiscussion', |
|---|
| 174 | | i18n_domain='PloneXL8', |
|---|
| 175 | | ), |
|---|
| 176 | | languageIndependent=1 |
|---|
| 177 | | ), |
|---|
| 178 | | |
|---|
| 179 | | StringField( |
|---|
| 180 | | name='sourceLanguage', |
|---|
| 181 | | index="FieldIndex:Schema", |
|---|
| 182 | | widget=StringWidget( |
|---|
| 183 | | label="Source language (if translation)", |
|---|
| 184 | | label_msgid='PloneXL8_label_sourceLanguage', |
|---|
| 185 | | i18n_domain='PloneXL8', |
|---|
| 186 | | ), |
|---|
| 187 | | mode="r", |
|---|
| 188 | | searchable=1, |
|---|
| 189 | | accessor="getSourceLanguage" |
|---|
| | 81 | vocabulary="getAllLanguages" |
|---|
| | 97 | ), |
|---|
| | 98 | |
|---|
| | 99 | #NOTE: ideally, the vocabulary would be dynamically generated and |
|---|
| | 100 | #managed with ATVocabularyManager, but I can't get ordering to |
|---|
| | 101 | #work correctly. |
|---|
| | 102 | StringField( |
|---|
| | 103 | name='documentType', |
|---|
| | 104 | index="FieldIndex:Schema", |
|---|
| | 105 | widget=SelectionWidget( |
|---|
| | 106 | label="Document type", |
|---|
| | 107 | label_msgid='PloneXL8_label_documentType', |
|---|
| | 108 | i18n_domain='PloneXL8', |
|---|
| | 109 | ), |
|---|
| | 110 | enforceVocabulary=True, |
|---|
| | 111 | searchable=1, |
|---|
| | 112 | vocabulary=['Public SF', 'Internal SF', 'Babels'], |
|---|
| | 113 | default='Public SF', |
|---|
| | 114 | required=True, |
|---|
| | 115 | languageIndependent=1 |
|---|
| | 116 | ), |
|---|
| | 117 | |
|---|
| | 118 | #NOTE: ideally, the vocabulary would be dynamically generated and |
|---|
| | 119 | #managed with ATVocabularyManager, but I can't get ordering to |
|---|
| | 120 | #work correctly. |
|---|
| | 121 | StringField( |
|---|
| | 122 | name='urgency', |
|---|
| | 123 | index="FieldIndex:schema", |
|---|
| | 124 | widget=SelectionWidget( |
|---|
| | 125 | label="Urgency", |
|---|
| | 126 | label_msgid='PloneXL8_label_urgency', |
|---|
| | 127 | i18n_domain='PloneXL8', |
|---|
| | 128 | ), |
|---|
| | 129 | enforceVocabulary=True, |
|---|
| | 130 | searchable=1, |
|---|
| | 131 | vocabulary=['Normal', 'Urgent', 'Super Urgent'], |
|---|
| | 132 | default='Normal', |
|---|
| | 133 | required=True, |
|---|
| | 134 | languageIndependent=1 |
|---|
| | 135 | ), |
|---|
| | 136 | |
|---|
| | 137 | DateTimeField( |
|---|
| | 138 | name='dueDate', |
|---|
| | 139 | index="DateRangeIndex:schema", |
|---|
| | 140 | widget=CalendarWidget( |
|---|
| | 141 | label="Translation due date", |
|---|
| | 142 | label_msgid='PloneXL8_label_dueDate', |
|---|
| | 143 | i18n_domain='PloneXL8', |
|---|
| | 144 | ), |
|---|
| | 145 | languageIndependent=1, |
|---|
| | 146 | searchable=1 |
|---|
| | 147 | ), |
|---|
| | 148 | |
|---|
| | 149 | DateTimeField( |
|---|
| | 150 | name='proofDueDate', |
|---|
| | 151 | index="DateRangeIndex:schema", |
|---|
| | 152 | widget=CalendarWidget( |
|---|
| | 153 | label="Translation proofreading due date", |
|---|
| | 154 | label_msgid='PloneXL8_label_proofDueDate', |
|---|
| | 155 | i18n_domain='PloneXL8', |
|---|
| | 156 | ), |
|---|
| | 157 | languageIndependent=1, |
|---|
| | 158 | searchable=1 |
|---|
| | 159 | ), |
|---|
| | 160 | |
|---|
| | 161 | StringField( |
|---|
| | 162 | name='isSource', |
|---|
| | 163 | index="FieldIndex:schema", |
|---|
| | 164 | widget=StringWidget( |
|---|
| | 165 | label="Original document?", |
|---|
| | 166 | visible=0, |
|---|
| | 167 | label_msgid='PloneXL8_label_isSource', |
|---|
| | 168 | i18n_domain='PloneXL8', |
|---|
| | 169 | ), |
|---|
| | 170 | enforceVocabulary=1, |
|---|
| | 171 | searchable=1, |
|---|
| | 172 | vocabulary=['Yes', 'No'], |
|---|
| | 173 | default="Yes", |
|---|
| | 174 | required=1, |
|---|
| | 175 | accessor="isDocSource" |
|---|
| | 176 | ), |
|---|
| | 177 | |
|---|
| | 178 | #Make this default ATCT field disappear. There must be a better |
|---|
| | 179 | #way to do this. Do NOT change the 'Visible' field. |
|---|
| | 180 | StringField( |
|---|
| | 181 | name='relatedItems', |
|---|
| | 182 | default=['dummy',], |
|---|
| | 183 | widget=StringWidget( |
|---|
| | 184 | visible=0, |
|---|
| | 185 | label='Relateditems', |
|---|
| | 186 | label_msgid='PloneXL8_label_relatedItems', |
|---|
| | 187 | i18n_domain='PloneXL8', |
|---|
| | 188 | ), |
|---|
| | 189 | languageIndependent=1 |
|---|
| | 190 | ), |
|---|
| | 191 | |
|---|
| | 192 | #Make this default ATCT field disappear. There must be a better |
|---|
| | 193 | #way to do this. Do NOT change the 'visible' field. |
|---|
| | 194 | StringField( |
|---|
| | 195 | name='allowDiscussion', |
|---|
| | 196 | default=['dummy',], |
|---|
| | 197 | widget=StringWidget( |
|---|
| | 198 | visible=0, |
|---|
| | 199 | label='Allowdiscussion', |
|---|
| | 200 | label_msgid='PloneXL8_label_allowDiscussion', |
|---|
| | 201 | i18n_domain='PloneXL8', |
|---|
| | 202 | ), |
|---|
| | 203 | languageIndependent=1 |
|---|
| | 204 | ), |
|---|
| | 205 | |
|---|
| | 206 | StringField( |
|---|
| | 207 | name='sourceLanguage', |
|---|
| | 208 | index="FieldIndex:Schema", |
|---|
| | 209 | widget=StringWidget( |
|---|
| | 210 | label="Source language (if translation)", |
|---|
| | 211 | label_msgid='PloneXL8_label_sourceLanguage', |
|---|
| | 212 | i18n_domain='PloneXL8', |
|---|
| | 213 | ), |
|---|
| | 214 | mode="r", |
|---|
| | 215 | searchable=1, |
|---|
| | 216 | accessor="getSourceLanguage" |
|---|
| | 217 | ), |
|---|
| | 218 | |
|---|
| | 219 | DateTimeField( |
|---|
| | 220 | name='translationModTime', |
|---|
| | 221 | index="FieldIndex:Schema", |
|---|
| | 222 | widget=CalendarWidget( |
|---|
| | 223 | visible=0, |
|---|
| | 224 | label='Translationmodtime', |
|---|
| | 225 | label_msgid='PloneXL8_label_translationModTime', |
|---|
| | 226 | i18n_domain='PloneXL8', |
|---|
| | 227 | ), |
|---|
| | 228 | searchable=1, |
|---|
| | 229 | mutator="setModDateTime" |
|---|
| | 366 | security.declarePublic('setModDateTime') |
|---|
| | 367 | def setModDateTime(self, value): |
|---|
| | 368 | """ |
|---|
| | 369 | |
|---|
| | 370 | """ |
|---|
| | 371 | now=DateTime() |
|---|
| | 372 | self.getField('translationModTime').set(self, now) |
|---|
| | 373 | |
|---|
| | 374 | security.declarePublic('getAllLanguages') |
|---|
| | 375 | def getAllLanguages(self): |
|---|
| | 376 | """ |
|---|
| | 377 | |
|---|
| | 378 | """ |
|---|
| | 379 | has_lang=self.getCanonicalLanguage() |
|---|
| | 380 | if has_lang: |
|---|
| | 381 | return [(has_lang, has_lang)] |
|---|
| | 382 | else: |
|---|
| | 383 | allLanguages = self.portal_languages.listSupportedLanguages() |
|---|
| | 384 | allLanguages.sort(lcmp) |
|---|
| | 385 | langs=[('', '--')] |
|---|
| | 386 | for lang in allLanguages: |
|---|
| | 387 | langs.append((lang[0], lang[0] + " (" + lang[1] + ")")) |
|---|
| | 388 | return langs |
|---|
| | 389 | |
|---|