Esempio n. 1
0
 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)
Esempio n. 2
0
 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)
Esempio n. 3
0
    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
Esempio n. 4
0
    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