def createAndAdd( self, data ): domain_model = removeSecurityProxy( self.domain_model ) # create the object, inspect data for constructor args try: ob = generic.createInstance( domain_model, data ) except TypeError: ob = domain_model() # apply any context values self.finishConstruction( ob ) # apply extra form values form.applyChanges( ob, self.form_fields, data, self.adapters ) # fire an object created event notify(ObjectCreatedEvent(ob)) # signal to add form machinery to go to next url self._finished_add = True name = workspace.stringKey(ob) return self.context.get(name)
def createAndAdd(self, data): domain_model = removeSecurityProxy(self.domain_model) # create the object, inspect data for constructor args try: ob = generic.createInstance(domain_model, data) except TypeError: ob = domain_model() # apply any context values self.finishConstruction(ob) # apply extra form values form.applyChanges(ob, self.form_fields, data, self.adapters) # fire an object created event notify(ObjectCreatedEvent(ob)) # signal to add form machinery to go to next url self._finished_add = True name = workspace.stringKey(ob) return self.context.get(name)
def createRecurringSittings(self, ob, data): start = data['start_date'] end = data['end_date'] weekdays = data.get('weekdays') monthly = data.get('monthly') repeat = data.get('repeat') repeat_until = data.get('repeat_until') exceptions = data.get('exceptions', ()) objs = [] session = Session() group_id = self.context.__parent__.group_id group = session.query(domain.Group).get(group_id) if repeat or repeat_until: for date in validations.generate_recurring_sitting_dates( start.date(), repeat, repeat_until, weekdays, monthly, exceptions): # create the object, inspect data for constructor args data['start_date'] = datetime.datetime(date.year, date.month, date.day, start.hour, start.minute) data['end_date'] = datetime.datetime(date.year, date.month, date.day, end.hour, end.minute) try: ob = generic.createInstance(self.domain_model, data) except TypeError: ob = self.domain_model() form.applyChanges(ob, self.form_fields, data, {}) ob.group_id = group_id session.add(ob) notify(ObjectCreatedEvent(ob)) objs.append(ob) return objs
def createRecurringSittings(self, ob, data): start = data['start_date'] end = data['end_date'] weekdays = data.get('weekdays') monthly = data.get('monthly') repeat = data.get('repeat') repeat_until = data.get('repeat_until') exceptions = data.get('exceptions', ()) objs = [] session = Session() group_id = self.context.__parent__.group_id group = session.query(domain.Group).get(group_id) if repeat or repeat_until: for date in validations.generate_recurring_sitting_dates( start.date(), repeat, repeat_until, weekdays, monthly, exceptions): # create the object, inspect data for constructor args data['start_date'] = datetime.datetime( date.year, date.month, date.day, start.hour, start.minute) data['end_date'] = datetime.datetime( date.year, date.month, date.day, end.hour, end.minute) try: ob = generic.createInstance(self.domain_model, data) except TypeError: ob = self.domain_model() form.applyChanges(ob, self.form_fields, data, {}) ob.group_id = group_id session.add(ob) notify(ObjectCreatedEvent(ob)) objs.append(ob) return objs