示例#1
0
 def buildSittings(self):
     if ISitting.providedBy(self.context):
         trusted = removeSecurityProxy(self.context)
         order = "real_order"
         trusted.item_schedule.sort(key=operator.attrgetter(order))
         self.sittings.append(trusted)
     else:
         sittings = ISchedulingContext(self.context).get_sittings(
             self.start_date, self.end_date).values()
         self.sittings = map(removeSecurityProxy, sittings)
     self.sittings = [ExpandedSitting(sitting) for sitting in self.sittings]
示例#2
0
 def build_context(self):
     if ISitting.providedBy(self.context):
         sittings = [removeSecurityProxy(self.context)]
     else:
         sittings = map(removeSecurityProxy, 
             ISchedulingContext(self.context).get_sittings(
                 self.start_date, self.end_date).values())
     # sort sittings chronologically
     sittings.sort(key=operator.attrgetter("start_date"))
     # ensure item_schedule is sorted via "real_order" within each sitting
     for sitting in sittings:
         sitting.item_schedule.sort(key=operator.attrgetter("real_order"))
     self.sittings = [ ExpandedSitting(s) for s in sittings ]
示例#3
0
 def buildSittings(self, start_date, end_date):
     if ISitting.providedBy(self.context):
         trusted = removeSecurityProxy(self.context)
         order="real_order"
         trusted.item_schedule.sort(key=operator.attrgetter(order))
         self.sittings.append(trusted)
     else:
         sittings = ISchedulingContext(self.context).get_sittings(
             start_date, end_date
         ).values()
         self.sittings = map(removeSecurityProxy, sittings)
     self.sittings = [ ExpandedSitting(sitting) 
         for sitting in self.sittings 
     ]
示例#4
0
 def build_context(self):
     if ISitting.providedBy(self.context):
         sittings = [removeSecurityProxy(self.context)]
     else:
         sittings = map(
             removeSecurityProxy,
             ISchedulingContext(self.context).get_sittings(
                 self.start_date, self.end_date).values())
     # sort sittings chronologically
     sittings.sort(key=operator.attrgetter("start_date"))
     # ensure item_schedule is sorted via "real_order" within each sitting
     for sitting in sittings:
         sitting.item_schedule.sort(key=operator.attrgetter("real_order"))
     self.sittings = [ExpandedSitting(s) for s in sittings]
示例#5
0
    def handle_save(self, action, data):
        report = domain.Report()
        session = Session()
        report.body = data["body"]
        report.start_date = data["start_date"]
        report.end_date = data["end_date"]
        report.note = data["note"]
        report.short_name = data["short_name"]
        report.owner_id = get_login_user().user_id  # !+GROUP_AS_OWNER
        report.language = get_default_language()
        report.created_date = datetime.datetime.now()
        if not hasattr(self.context, "group_id"):
            report.group_id = ISchedulingContext(self.context).group_id
        else:
            report.group_id = self.context.group_id
        session.add(report)
        session.flush()
        notify(ObjectCreatedEvent(report))
        if "sittings" in data.keys():
            try:
                ids = data["sittings"].split(",")
                for id_number in ids:
                    sit_id = int(id_number)
                    sitting = session.query(domain.Sitting).get(sit_id)
                    sr = domain.SittingReport()
                    sr.report = report
                    sr.sitting = sitting
                    session.add(sr)
                    notify(ObjectCreatedEvent(report))
            except:
                #if no sittings are present in report or some other error occurs
                pass
        session.flush()

        if ISitting.providedBy(self.context):
            back_link = "./schedule"
        else:
            back_link = "./"
        self.request.response.redirect(back_link)
示例#6
0
 def handle_save(self, action, data):
     report = domain.Report()
     session = Session()
     report.body = data["body"]
     report.start_date = data["start_date"]
     report.end_date = data["end_date"]
     report.note = data["note"]
     report.short_name = data["short_name"]
     report.owner_id = get_db_user_id() # !+GROUP_AS_OWNER
     report.language = get_default_language()
     report.created_date = datetime.datetime.now()
     if not hasattr(self.context, "group_id"):
         report.group_id = ISchedulingContext(self.context).group_id
     else:
         report.group_id = self.context.group_id
     session.add(report)
     session.flush()
     notify(ObjectCreatedEvent(report))
     if "sittings" in data.keys():
         try:
             ids = data["sittings"].split(",")
             for id_number in ids:
                 sit_id = int(id_number)
                 sitting = session.query(domain.Sitting).get(sit_id)
                 sr = domain.SittingReport()
                 sr.report = report
                 sr.sitting = sitting
                 session.add(sr)
                 notify(ObjectCreatedEvent(report))
         except:
             #if no sittings are present in report or some other error occurs
             pass
     session.flush()
     
     if ISitting.providedBy(self.context):
         back_link = "./schedule"
     else:
         back_link = "./"
     self.request.response.redirect(back_link)