Esempio n. 1
0
            def week_table_rows(self, year, week):
                columns = [[None] + [
                    dict(zip(self.ROW_LABEL_NAMES, labels)) 
                    for labels in self.ROW_LABELS]]
                weekdays = dayplanner.get_weekdays(int(year), int(week))[:5]

                for weekday in weekdays:
                    col = [{"date": weekday}]
                    events = self.process_day_events(
                        weekday, 
                        self.app.queryset.get_for_date(weekday))

                    for start, stop, label in self.ROW_LABELS: 
                        es = [e for e in events 
                             if e["start"].time() >= start
                             and e["stop"].time() <= stop]
                        if es:
                            col.append(es[0])
                        else:
                            col.append(None)
                            
                    if all(not cell for cell in col[1:]):
                        col[2] = {
                            "description": _(u"(Päivä jätetty tyhjäksi)")
                            }

                    columns.append(col)

                return zip(*columns)
Esempio n. 2
0
        def reserve_week(self, request, year, week):
            is_forbidden = self.app.check_forbidden(
                request, ["view", "create"])
            if is_forbidden:
                return is_forbidden

            year, week = int(year), int(week)

            weekdays = dayplanner.get_weekdays(year, week)
            monthu = weekdays[:4]
            fri = weekdays[4]

            def new_object(**kwargs):
                our_kwargs = dict(kwargs, **{"person": request.user, 
                                             "namespace": self.app.namespace})
                return self.reservation_model(**our_kwargs)

            if request.method == "POST":
                forms = []
                for i, date in enumerate(monthu):
                    forms.append(self.day_form(request.POST, 
                                               date=date, 
                                               prefix=i, 
                                               queryset=self.app.queryset,
                                               new_object=new_object))
                forms.append(self.friday_form(request.POST, 
                                              date=fri, 
                                              prefix=i+1,
                                              queryset=self.app.queryset,
                                              new_object=new_object))

                if all(f.is_valid() for f in forms):
                    for form in forms:
                        form.save()
                    return self.http.HttpResponseRedirect(
                        self.app.reverse("browse_week", {
                                "year": year, 
                                "week": week}))
            else:
                forms = []
                for i, date in enumerate(monthu):
                    forms.append(self.day_form(
                            date=date, 
                            prefix=i, 
                            queryset=self.app.queryset, 
                            new_object=new_object))
                forms.append(self.friday_form(
                        date=fri,
                        prefix=i+1, 
                        queryset=self.app.queryset, 
                        new_object=new_object))

            return self.app.get_response(
                request,
                template="reserve_week",
                context={"forms": forms,
                         "app_name": self.app.get_app_name()})