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)
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()})