def __call__(self, context): # Just an example list of content for our vocabulary, # this can be any static or dynamic data, a catalog result for example. items = [ VocabItem(u'willStart', _(u'willStart')), VocabItem(u'fullCanAlt', _(u'fullCanAlt')), VocabItem(u'planed', _(u'planed')), VocabItem(u'registerFirst', _(u'registerFirst')), VocabItem(u'altFull', _(u'altFull')), ] # Fix context if you are using the vocabulary in DataGridField. # See https://github.com/collective/collective.z3cform.datagridfield/issues/31: # NOQA: 501 if not IDexterityContent.providedBy(context): req = getRequest() context = req.PARENTS[0] # create a list of SimpleTerm items: terms = [] for item in items: terms.append( SimpleTerm( value=item.token, token=str(item.token), title=item.value, ) ) # Create a SimpleVocabulary from the terms list and return it: return SimpleVocabulary(terms)
class ITrainingcenter(model.Schema): """ Marker interface and Dexterity Python Schema for Trainingcenter """ address = schema.TextLine( title=_(u"Address"), required=True, ) phone = schema.TextLine( title=_(u"Phone Number."), required=True, ) fax = schema.TextLine( title=_(u"Fax Number."), required=True, ) code = schema.TextLine( title=_(u"Training Center Code."), required=False, ) simpleTitle = schema.TextLine( title=_(u"Simple Title"), required=False, )
class ITask(Interface): title = schema.TextLine( title=_(u'Title'), required=True, ) description = schema.Text( title=_(u'Description'), required=False, )
class ICourse(Interface): directives.omitted('title', 'subject_list') title = schema.TextLine(title=_(u'Title'), required=True) subject_list = schema.Text( title=_(u'subject list'), required=True, ) numbers = schema.Int( title=_(u'number of student'), required=False, )
class IClassroom(model.Schema): """ Marker interface and Dexterity Python Schema for Classroom """ seat = schema.Int( title=_(u"Seat"), description=_(u"Number of seats."), required=True ) seatState = schema.TextLine( title=_(u'Seat State'), default=u'3|4|3', description=_(u'For example, 3|4|3 or 4|3|3 ext.'), required=True )
def test_vocab_class_room(self): vocab_name = 'cshm.content.ClassRoom' factory = getUtility(IVocabularyFactory, vocab_name) self.assertTrue(IVocabularyFactory.providedBy(factory)) vocabulary = factory(self.portal) self.assertTrue(IVocabularyTokenized.providedBy(vocabulary)) self.assertEqual( vocabulary.getTerm('sony-a7r-iii').title, _(u'Sony Aplha 7R III'), )
def changeId(obj, event): portal = api.portal.get() if not obj.title.endswith('期'): api.portal.show_message(message=_(u'Please ends with "echelon"'), request=obj.REQUEST, type='warn') request = obj.REQUEST request.response.redirect(request.getURL()) return newId = obj.title.split('期')[0] parent = obj.getParentNode() if parent.has_key(newId) and parent[newId] != obj: api.portal.show_message(message=_( u'Warning!, Has a same name course in this folder, Plsear back page and rename' ), request=obj.REQUEST, type='error') raise api.content.rename(obj=obj, new_id=str(newId)) api.portal.show_message(message=_(u'Rename Already Done.'), request=obj.REQUEST, type='info') return
class IMaterial(model.Schema): title = schema.TextLine( title=_(u"Title"), required=True, ) version = schema.TextLine( title=_(u"Version"), required=False, ) price = schema.Int( title=_(u"Price"), required=True, ) discountPrice = schema.Int( title=_(u"Discount Price"), required=False, ) unit = schema.TextLine( title=_(u"Unit"), required=False, ) code = schema.TextLine( title=_(u"Code"), required=False, ) cover = namedfile.NamedBlobImage( title=_(u'Cover'), required=False, ) copyright = namedfile.NamedBlobFile( title=_(u'Copyright'), required=False, )
class ISubject(model.Schema): """ Marker interface and Dexterity Python Schema for Subject """ hours = schema.Float( title=_(u"Subject Hours"), required=True, ) startDateTime = schema.Datetime( title=_(u"Start time"), required=False ) notes = schema.Text( title=_(u"Notes"), required=False, ) #attachFile = namedfile.NamedBlobFile( # title=_(u'Attach File'), # required=False, #) isQuiz = schema.Bool( title=_(u"Quiz"), required=True, default=True ) teacher = RelationChoice( title=_(u"Teacher"), required=False, source=CatalogSource(Type='Teacher') ) ignoreSchedule = schema.Bool( title=_(u'Ignore Schedule'), default=False, )
class IEchelon(model.Schema): """ Marker interface and Dexterity Python Schema for Echelon """ fieldset(_(u'Course Basic'), fields=[ 'classStatus', 'duringTime', 'classTime', 'classroom', 'courseStart', 'courseEnd', 'regDeadline', 'trainingCenter', 'specialCourse', 'undertaker', 'counselor', 'quota', 'altCount', 'courseFee', 'trainingCenterAgent', 'manageOrg', 'docSN', ]) fieldset(_(u'Handbook'), fields=[ 'contact', 'discountInfo_no_open', 'discountProgram', 'discountStart', 'discountEnd', 'prepareInfo', 'courseHours', 'detailClassTime', 'memo', ]) title = schema.TextLine( title=_(u'Echelon Title'), default=_(u'New Course'), required=True, ) duringTime = schema.Choice(title=_(u'During Time'), vocabulary='cshm.content.ClassTime', default=u'notYat', required=True) courseStart = schema.Date( title=_(u"Course Start Date"), required=False, ) courseEnd = schema.Date( title=_(u"Course End Date"), required=False, ) classTime = schema.TextLine( title=_(u"Class Time, ex. 0900-1800"), required=False, ) classroom = schema.Choice(title=_(u'Classroom'), vocabulary='cshm.content.ClassRoom', required=True) undertaker = schema.Choice(title=_(u'undertaker'), vocabulary='cshm.content.AllUser', required=True) counselor = schema.Choice(title=_(u'counselor'), vocabulary='cshm.content.AllUser', required=True) trainingCenter = RelationChoice( title=_(u"Training Center"), required=False, source=CatalogSource(Type='TrainingCenter')) quota = schema.Int( title=_(u'Class Quota'), description=_(u'if 0, is not confirm'), default=0, required=True, ) altCount = schema.Int( title=_(u'Alternate Count'), default=100, min=0, required=True, ) courseFee = schema.Int( title=_(u'Course Fee'), required=False, ) classStatus = schema.Choice( title=_(u'Course Status'), vocabulary='cshm.content.ClassStatus', default=u'registerFirst', required=False, ) memo = RichText( title=_(u'Memo'), required=False, ) contact = schema.TextLine( title=_(u'Contact'), required=False, ) regDeadline = schema.Date( title=_(u'Registration Deadline'), required=False, ) discountProgram = schema.TextLine( title=_(u'Discount Program'), required=False, ) discountInfo_no_open = schema.Text( title=_(u'Discount Information, No Open'), required=False, ) @invariant def check_date(data): if data.discountEnd < data.discountStart: raise Invalid(_(u'The End Date Need Bigger Then Start Date')) discountStart = schema.Date(title=_(u'Discount Start Date'), required=False) discountEnd = schema.Date(title=_(u'Discount End Date'), required=False) prepareInfo = schema.Text( title=_(u'Prepare Information'), required=False, ) courseHours = schema.Int( title=_(u"Course Hours"), default=0, description=_(u"If 0, asking for phone"), required=True, ) detailClassTime = schema.Text( title=_(u'Detail Class Time'), required=False, ) fieldset(_(u'Other'), fields=[ 'submitClassDate', 'craneType', 'availableMaterial', 'qualification', 'reTrainingDetail', 'courseIntro', 'courseScope', 'testMethod', 'studDataSendDate', 'finishCourseSendDate', 'receivedDate', 'giveLicenseStatus', 'checkNote', 'preFee', 'feeDetail', 'manageFee', 'finishCourseStatus', 'cashierNote', 'statusNote', 'docDate', 'licenseDate', ]) submitClassDate = schema.Date( title=_(u'Submit Class Date'), required=False, ) craneType = schema.TextLine( title=_(u'Crane Type'), required=False, ) availableMaterial = schema.List( title=_(u"Select Material"), required=False, value_type=schema.Choice(title=_(u"material"), vocabulary='cshm.content.MaterialList')) qualification = schema.TextLine( title=_(u'Qualification'), required=False, ) reTrainingDetail = RichText( title=_(u'ReTraining Detail'), required=False, ) courseIntro = RichText( title=_(u'CourseIntro'), required=False, ) courseScope = RichText( title=_(u'Course Scope'), required=False, ) testMethod = RichText( title=_(u'Test Method'), required=False, ) studDataSendDate = schema.Date( title=_(u"studDataSendDate"), required=False, ) finishCourseSendDate = schema.Date( title=_(u"finishCourseSendDate"), required=False, ) receivedDate = schema.Date( title=_(u"receivedDate"), required=False, ) giveLicenseStatus = schema.TextLine( title=_(u"Give License Status"), required=False, ) checkNote = schema.TextLine( title=_(u"checkNote"), required=False, ) preFee = schema.TextLine( title=_(u"preFee"), required=False, ) feeDetail = schema.TextLine( title=_(u"feeDetail"), required=False, ) manageFee = schema.TextLine( title=_(u"manageFee"), required=False, ) finishCourseStatus = schema.TextLine( title=_(u"finishCourseStatus"), required=False, ) cashierNote = schema.TextLine( title=_(u"cashierNote"), required=False, ) statusNote = schema.TextLine( title=_(u"statusNote"), required=False, ) trainingCenterAgent = schema.TextLine( title=_(u'Training Center Agent'), required=False, ) specialCourse = schema.TextLine( title=_(u"Special Course"), required=False, ) manageOrg = schema.TextLine(title=_(u"Manage Org"), required=False) docSN = schema.TextLine( title=_(u"Document SN"), required=False, ) docDate = schema.Date( title=_(u"Document Date"), required=False, ) # 發證日期 licenseDate = schema.Date( title=_(u"License Date"), required=False, )
) reg_finish_alert_message = schema.Text( title=_(u'Registry Finish Alert Message'), description=_(u"Show in Registry Finish Page."), required=True, ) email_template = schema.Text(title=_(u'Email Template'), description=_(u'One line one record'), required=False) msg_template = schema.Text(title=_(u'Msg Template'), description=_(u'One line one record'), required=False) images_folder_path = schema.TextLine( title=_(u'Images Folder Path'), required=True, ) class OfficeControlPanelForm(RegistryEditForm): form.extends(RegistryEditForm) schema = IOffice OfficeControlPanelView = layout.wrap_form(OfficeControlPanelForm, ControlPanelFormWrapper) OfficeControlPanelView.label = _(u"Office Related Setting")
class IOffice(Form.Schema): docsWorkflows = schema.Text( title=_(u"Documents workflows"), # description=_(u'User Enter to separate'), required=False, ) office_header = schema.Text( title=_(u"Office Header"), description=_(u'User Enter to separate'), required=False, ) count_office_header = schema.Text( title=_(u"Count Header"), required=False, ) cell_msg_url = schema.TextLine( title=_(u'Cell Message Provider URL'), description=_(u'format: id,password,url'), required=True, ) reg_ok_message = schema.Text( title=_(u'Registry OK Auto Message'), description=_(u"'name' for Student Name, 'course' for Course Name"), required=False, ) reg_finish_alert_message = schema.Text( title=_(u'Registry Finish Alert Message'), description=_(u"Show in Registry Finish Page."), required=True, ) email_template = schema.Text(title=_(u'Email Template'), description=_(u'One line one record'), required=False) msg_template = schema.Text(title=_(u'Msg Template'), description=_(u'One line one record'), required=False) images_folder_path = schema.TextLine( title=_(u'Images Folder Path'), required=True, )
class ISurver(Interface): title = schema.TextLine(title=_(u'Title'), required=True) file = NamedBlobFile(title=_(u'File'), required=True)
class IOfficialDoc(model.Schema): """ Marker interface and Dexterity Python Schema for Official Document """ fieldset(_(u'Related Echelon'), fields=[ 'relatedEchelon', ]) relatedEchelon = RelationChoice(title=_(u"Related Echelon"), required=False, source=CatalogSource(Type='Echelon')) title = schema.TextLine( title=_(u"Official Document Title"), required=True, ) docWorkflow = schema.TextLine( title=_(u'Official Document Workflow.'), required=False, ) workflowStatus = schema.TextLine( title=_(u'Workflow Status.'), required=False, ) docHeader = schema.TextLine( title=_(u'Official Document Header.'), required=True, ) docSN = schema.TextLine( title=_(u'Official Document Serial No.'), required=True, ) docDate = schema.Date( title=_(u"Official Document Date."), required=True, ) recipient = schema.TextLine( title=_(u'Recipient'), required=True, ) detail_1 = schema.TextLine( title=_(u'Official Document Detail 1'), required=False, ) detail_2 = schema.TextLine( title=_(u'Official Document Detail 2'), required=False, ) detail_3 = schema.TextLine( title=_(u'Official Document Detail 3'), required=False, ) detail_4 = schema.TextLine( title=_(u'Official Document Detail 4'), required=False, ) detail_5 = schema.TextLine( title=_(u'Official Document Detail 5'), required=False, ) detail_6 = schema.TextLine( title=_(u'Official Document Detail 6'), required=False, ) detail_7 = schema.TextLine( title=_(u'Official Document Detail 7'), required=False, ) detail_8 = schema.TextLine( title=_(u'Official Document Detail 8'), required=False, ) detail_9 = schema.TextLine( title=_(u'Official Document Detail 9'), required=False, ) detail_10 = schema.TextLine( title=_(u'Official Document Detail 10'), required=False, )
class ICourse(model.Schema): """ Marker interface and Dexterity Python Schema for Course """ # fieldset('Counselor', fields=['counselor', 'agentCounselor']) directives.mode(counselor='hidden') counselor = schema.Choice( title=_(u"Counselor"), vocabulary='plone.app.vocabularies.Users', required=False, ) directives.mode(agentCounselor='hidden') agentCounselor = schema.Choice( title=_(u"Agent Counselor"), vocabulary='plone.app.vocabularies.Users', required=False, ) # fieldset('CourseDetail', fields=[]) reTrainingBaseOn = schema.TextLine( title=_(u'Retraining Base On'), required=False, ) reTrainingCourse = RelationList( title=_(u"Retrainging Course"), required=False, value_type=RelationChoice( title=_(u"Course"), source=CatalogSource(Type='Course', path='/cshm/resource/course_template'), )) handbookTitle = schema.TextLine( title=_(u'Handbook Title'), required=False, ) """ courseHours = schema.Int( title=_(u"Course Hours"), default=0, description=_(u"If 0, asking for phone"), required=False, ) # 考量學費可能調整,這個欄位可能要放到期別 courseFee = schema.Int( title=_(u"Course Fee"), default=0, description=_(u"If 0, asking for phone"), required=False, ) """ courseRequired = RichText( title=_(u"Course Required"), required=False, ) trainee = RichText( title=_(u"Trainee"), required=False, ) courseScope = schema.TextLine( title=_(u"Course Scope"), required=False, ) courseEffective = schema.TextLine( title=_(u"Course Effective"), required=False, ) introduction = RichText( title=_(u"Introduction"), required=False, ) otherNote = RichText( title=_(u"Other Note"), required=False, ) certificateCode = schema.TextLine( title=_(u"Certificate Code"), required=False, ) simpleTitle = schema.TextLine( title=_(u"Simple Title"), required=False, ) reTrainingYears = schema.Int( title=_(u"Retraining Years"), default=0, description=_(u"If 0, no need retraining."), required=True, ) licenseType = schema.TextLine( title=_(u"License Type"), required=False, )
def check_date(data): if data.discountEnd < data.discountStart: raise Invalid(_(u'The End Date Need Bigger Then Start Date'))
class ITeacher(model.Schema): """ Marker interface and Dexterity Python Schema for Teacher """ title = schema.TextLine( title=_(u"Teacher Name."), required=True, ) activation = schema.Bool( title=_(u"Activation"), default=True, required=True, ) isMember = schema.Bool( title=_(u"Is Member"), default=False, required=True, ) idCardNo = schema.TextLine( title=_(u"Id Card Number."), required=True, ) teacherSN = schema.TextLine( title=_(u"Teacher Serial Number."), required=False, ) birthday = schema.Date( title=_(u"Birthday"), required=False, ) homePhone = schema.TextLine( title=_(u"Home Phone Number."), required=False, ) cellPhone = schema.TextLine( title=_(u"Cell Phone Number."), required=False, ) fax = schema.TextLine( title=_(u"Fax Number."), required=False, ) email = schema.TextLine( title=_(u"Email."), required=False, ) idCardAddr = schema.TextLine( title=_(u"ID Card Address."), required=False, ) contactAddr = schema.TextLine( title=_(u"Contact Address."), required=False, ) edu_1 = schema.TextLine( title=_(u"Education 1."), required=False, ) dep_1 = schema.TextLine( title=_(u"Department 1."), required=False, ) degree_1 = schema.TextLine( title=_(u"Degree 1."), required=False, ) gradYear_1 = schema.Int( title=_(u"Graduation Year 1."), min=1900, max=2100, required=False, ) gradMonth_1 = schema.Int( title=_(u"Graduation Month 1."), min=1, max=12, required=False, ) edu_2 = schema.TextLine( title=_(u"Education 2."), required=False, ) dep_2 = schema.TextLine( title=_(u"Department 2."), required=False, ) degree_2 = schema.TextLine( title=_(u"Degree 2."), required=False, ) gradYear_2 = schema.Int( title=_(u"Graduation Year 2."), min=1900, max=2100, required=False, ) gradMonth_2 = schema.Int( title=_(u"Graduation Month 2."), min=1, max=12, required=False, ) edu_3 = schema.TextLine( title=_(u"Education 3."), required=False, ) dep_3 = schema.TextLine( title=_(u"Department 3."), required=False, ) degree_3 = schema.TextLine( title=_(u"Degree 3."), required=False, ) gradYear_3 = schema.Int( title=_(u"Graduation Year 3."), min=1900, max=2100, required=False, ) gradMonth_3 = schema.Int( title=_(u"Graduation Month 3."), min=1, max=12, required=False, ) serviceUnit = schema.TextLine( title=_(u"Service Unit"), required=False, ) serviceDep = schema.TextLine( title=_(u"Service Department"), required=False, ) currentJob = schema.TextLine( title=_(u"Current Job"), required=False, ) startWorkDate = schema.Date( title=_(u"Start Work Date"), required=False, ) unitPhone = schema.TextLine( title=_(u"Unit Phone"), required=False, ) personExp = schema.Text( title=_(u"Person Experience"), required=False, ) license = schema.Text( title=_(u"Person License"), required=False, ) unitAddress = schema.TextLine( title=_(u"Service Unit Address"), required=False, ) creatUser = schema.TextLine( title=_(u"Created User"), required=False, ) fieldset(_(u'Teach Related'), fields=['teachSubjects', 'teachTrainingCenter']) teachSubjects = RelationList( title=_(u'Teach Subjects'), default=[], required=False, value_type=RelationChoice( title=_(u"Subject"), source=CatalogSource(Type='Subject', path='/cshm/resource/course_template'), )) teachTrainingCenter = RelationList( title=_(u'Teach Training Center'), default=[], required=False, value_type=RelationChoice( title=_(u"Training Center"), source=CatalogSource(Type='TrainingCenter', path='/cshm/resource/training_center'), ))