def create(request, team_link): team = team_control.get_or_404(team_link) account = get_object_or_404(Account, user=request.user) assert_member(account, team) if request.method == "POST": form = forms.Create(request.POST, request.FILES, team=team, account=account) if form.is_valid(): bike = control.create( account, team, form.cleaned_data["name"].strip(), form.cleaned_data["image"], form.cleaned_data["description"].strip(), form.cleaned_data["active"], form.cleaned_data["reserve"], form.cleaned_data["station"], form.cleaned_data["lockcode"], form.cleaned_data["size"], form.cleaned_data["lights"], ) url = "/%s/bike/view/%s" % (team.link, bike.id) return HttpResponseRedirect(url) else: form = forms.Create(team=team, account=account) args = { "form": form, "form_title": _("BIKE_CREATE"), "multipart_form": True, "cancel_url": "/%s/bikes" % team.link } return rtr(team, "bikes", request, "site/form.html", args)
def create(request, team_link, bike_id): # get parameters start = request.GET.get('start', None) finish = request.GET.get('finish', None) try: start = start and parse(start).date() or None finish = finish and parse(finish).date() or None except ValueError: start = None finish = None team = team_control.get_or_404(team_link) account = get_object_or_404(Account, user=request.user) is_lender = team_control.is_member(account, team) bike = get_object_or_404(Bike, id=bike_id) if request.method == "POST": form = forms.Create(request.POST, bike=bike, account=account, start=start, finish=finish, is_lender=is_lender) if form.is_valid(): borrow = control.create(account, bike, form.cleaned_data["start"], form.cleaned_data["finish"], form.cleaned_data["note"].strip()) return HttpResponseRedirect("/borrow/view/%s" % borrow.id) else: form = forms.Create(bike=bike, account=account, start=start, finish=finish, is_lender=is_lender) args = { "form" : form, "form_title" : _("BORROW_CREATE"), "cancel_url" : "/%s/bike/view/%s" % (team_link, bike_id), "has_required_info" : account_control.has_required_info(account) } return rtr(team, "borrows", request, "borrow/create.html", args)
def edit(request, team_link, bike_id): team = team_control.get_or_404(team_link) account = get_object_or_404(Account, user=request.user) assert_member(account, team) bike = get_object_or_404(Bike, id=bike_id, team=team) if request.method == "POST": form = forms.Edit(request.POST, bike=bike, account=account) if form.is_valid(): control.edit( account, bike, form.cleaned_data["name"].strip(), form.cleaned_data["description"].strip(), form.cleaned_data["active"], form.cleaned_data["reserve"], form.cleaned_data["station"], form.cleaned_data["lockcode"], form.cleaned_data["size"], form.cleaned_data["lights"], ) url = "/%s/bike/view/%s" % (team.link, bike.id) return HttpResponseRedirect(url) else: form = forms.Edit(bike=bike, account=account) args = { "form": form, "form_title": _("BIKE_EDIT"), "cancel_url": "/%s/bike/view/%s" % (team.link, bike.id) } return rtr(team, "bikes", request, "site/form.html", args)
def remove_request_list(request, team_link): team = control.get_or_404(team_link) account = get_object_or_404(Account, user=request.user) assert_member(account, team) template = "team/remove_request/list.html" args = {"remove_requests": RemoveRequest.objects.filter(team=team)} return rtr(team, "remove_request/list", request, template, args)
def add(request, **kwargs): team_link = kwargs.get("team_link") gallery_id = kwargs["gallery_id"] account = get_object_or_404(Account, user=request.user) gallery = get_object_or_404(Gallery, id=gallery_id) team = team_link and team_control.get_or_404(team_link) or None url_prefix = team_link and "/%s" % team_link or "" if team: assert_member(account, team) if request.method == "POST": form = forms.Add(request.POST, request.FILES) if form.is_valid(): picture = control.add(account, form.cleaned_data["image"], gallery) url = "%s/gallery/view/%s" % (url_prefix, picture.id) return HttpResponseRedirect(url) else: form = forms.Add() args = { "form" : form, "form_title" : _("ADD_PICTURE_TO_GALLERY"), "cancel_url" : "%s/gallery/list/%s" % (url_prefix, gallery_id), "multipart_form" : True } if team: return rtr(team, None, request, "site/form.html", args) else: return render_response(request, "site/form.html", args)
def listing(request, team_link): team = team_control.get_or_404(team_link) date_start = None date_finish = None if request.method == "POST": form = forms.FilterListing(request.POST) if form.is_valid(): bikes = _get_listing_bikes(request, team, form) date_start = form.cleaned_data["start"] date_finish = form.cleaned_data["finish"] else: bikes = _get_listing_bikes(request, team, None) else: form = forms.FilterListing() bikes = _get_listing_bikes(request, team, None) shuffle(bikes) # to avoid a borrowing bias towards the first listed bikes args = { "page_title" : _("BIKES"), "filters" : form, "bike_rows" : list(chunks(bikes, 2)), "date_start" : date_start, "date_finish" : date_finish } return rtr(team, "bikes", request, "bike/list.html", args)
def setprimary(request, **kwargs): team_link = kwargs.get("team_link") picture_id = kwargs["picture_id"] account = get_object_or_404(Account, user=request.user) team = team_link and team_control.get_or_404(team_link) or None picture = get_object_or_404(Picture, id=picture_id) prefix = team_link and "/%s" % team_link or "" url = "%s/gallery/list/%s" % (prefix, picture.gallery.id) if team: assert_member(account, team) if request.method == "POST": form = Form(request.POST) if form.is_valid(): control.setprimary(account, picture) return HttpResponseRedirect(url) else: form = Form() # TODO make template that shows the image being set! args = { "form" : form, "form_title" : _("SET_AS_PRIMARY_PICTURE"), "cancel_url" : url } if team: return rtr(team, None, request, "site/form.html", args) else: return render_response(request, "site/form.html", args)
def members(request, team_link): team = control.get_or_404(team_link) args = { "members" : team.members.all(), "page_title" : _("MEMBERS") } return rtr(team, "members", request, "team/members.html", args)
def create(request, team_link): team = team_control.get_or_404(team_link) account = get_object_or_404(Account, user=request.user) assert_member(account, team) if request.method == "POST": form = forms.Create(request.POST, request.FILES, team=team, account=account) if form.is_valid(): bike = control.create( account, team, form.cleaned_data["name"].strip(), form.cleaned_data["image"], form.cleaned_data["description"].strip(), form.cleaned_data["active"], form.cleaned_data["reserve"], form.cleaned_data["station"], form.cleaned_data["lockcode"], form.cleaned_data["size"], form.cleaned_data["lights"], ) url = "/%s/bike/view/%s" % (team.link, bike.id) return HttpResponseRedirect(url) else: form = forms.Create(team=team, account=account) args = { "form" : form, "form_title" : _("BIKE_CREATE"), "multipart_form" : True, "cancel_url" : "/%s/bikes" % team.link } return rtr(team, "bikes", request, "site/form.html", args)
def edit(request, team_link, bike_id): team = team_control.get_or_404(team_link) account = get_object_or_404(Account, user=request.user) assert_member(account, team) bike = get_object_or_404(Bike, id=bike_id, team=team) if request.method == "POST": form = forms.Edit(request.POST, bike=bike, account=account) if form.is_valid(): control.edit( account, bike, form.cleaned_data["name"].strip(), form.cleaned_data["description"].strip(), form.cleaned_data["active"], form.cleaned_data["reserve"], form.cleaned_data["station"], form.cleaned_data["lockcode"], form.cleaned_data["size"], form.cleaned_data["lights"], ) url = "/%s/bike/view/%s" % (team.link, bike.id) return HttpResponseRedirect(url) else: form = forms.Edit(bike=bike, account=account) args = { "form" : form, "form_title" : _("BIKE_EDIT"), "cancel_url" : "/%s/bike/view/%s" % (team.link, bike.id) } return rtr(team, "bikes", request, "site/form.html", args)
def edit(request, team_link, station_id): account = get_object_or_404(Account, user=request.user) team = team_control.get_or_404(team_link) assert_member(account, team) station = get_object_or_404(Station, team=team, id=station_id) if request.method == "POST": form = forms.Edit(request.POST, station=station, account=account) if form.is_valid(): station = control.edit( account, station, form.cleaned_data["responsible"], form.cleaned_data["active"], form.cleaned_data["street"].strip(), form.cleaned_data["city"].strip(), form.cleaned_data["postalcode"].strip() ) url = "/%s/station/view/%s" % (team.link, station.id) return HttpResponseRedirect(url) else: form = forms.Edit(station=station, account=account) args = { "form" : form, "form_title" : _("EDIT_STATION"), "cancel_url" : "/%s/station/view/%s" % (team.link, station.id) } return rtr(team, "stations", request, "site/form.html", args)
def listing(request, team_link): team = team_control.get_or_404(team_link) date_start = None date_finish = None if request.method == "POST": form = forms.FilterListing(request.POST) if form.is_valid(): bikes = _get_listing_bikes(request, team, form) date_start = form.cleaned_data["start"] date_finish = form.cleaned_data["finish"] else: bikes = _get_listing_bikes(request, team, None) else: form = forms.FilterListing() bikes = _get_listing_bikes(request, team, None) shuffle(bikes) # to avoid a borrowing bias towards the first listed bikes args = { "page_title": _("BIKES"), "filters": form, "bike_rows": list(chunks(bikes, 2)), "date_start": date_start, "date_finish": date_finish } return rtr(team, "bikes", request, "bike/list.html", args)
def remove_request_list(request, team_link): team = control.get_or_404(team_link) account = get_object_or_404(Account, user=request.user) assert_member(account, team) template = "team/remove_request/list.html" args = { "remove_requests" : RemoveRequest.objects.filter(team=team) } return rtr(team, "remove_request/list", request, template, args)
def lender_view(request, team_link, borrow_id): account = get_object_or_404(Account, user=request.user) team = team_control.get_or_404(team_link) borrow = get_object_or_404(Borrow, id=borrow_id, team=team) if not team_control.is_member(account, borrow.team): # is not lender if account == borrow.borrower: # redirect borrower to right url return HttpResponseRedirect("/borrow/view/%s" % borrow.id) raise PermissionDenied args = { "borrow" : borrow, "logs" : borrow.logs.all() } return rtr(team, "borrows", request, "borrow/view.html", args)
def view(request, **kwargs): team_link = kwargs.get("team_link") picture_id = kwargs["picture_id"] team = team_link and team_control.get_or_404(team_link) or None picture = get_object_or_404(Picture, id=picture_id) args = { "picture" : picture } if team: return rtr(team, None, request, "gallery/view.html", args) else: return render_response(request, "gallery/view.html", args)
def lender_view(request, team_link, borrow_id): account = get_object_or_404(Account, user=request.user) team = team_control.get_or_404(team_link) borrow = get_object_or_404(Borrow, id=borrow_id, team=team) if not team_control.is_member(account, borrow.team): # is not lender if account == borrow.borrower: # redirect borrower to right url return HttpResponseRedirect("/borrow/view/%s" % borrow.id) raise PermissionDenied args = {"borrow": borrow, "logs": borrow.logs.all()} return rtr(team, "borrows", request, "borrow/view.html", args)
def listing(request, **kwargs): team_link = kwargs.get("team_link") gallery_id = kwargs["gallery_id"] team = team_link and team_control.get_or_404(team_link) or None gallery = get_object_or_404(Gallery, id=gallery_id) pictures = gallery.pictures.all() args = { "gallery" : gallery, "pictures" : pictures } if team: return rtr(team, None, request, "gallery/list.html", args) else: return render_response(request, "gallery/list.html", args)
def lender_cancel(request, team_link, borrow_id): team, account, borrow = _get_team_models(request, team_link, borrow_id) if request.method == "POST": form = forms.Cancel(request.POST) if form.is_valid(): control.cancel(account, borrow, form.cleaned_data["note"].strip()) url = "/%s/borrow/view/%s" % (team.link, borrow.id) return HttpResponseRedirect(url) else: form = forms.Cancel() args = { "form" : form, "form_title" : _("BORROW_CANCEL"), "cancel_url" : "/%s/borrow/view/%s" % (team_link, borrow_id) } return rtr(team, "borrows", request, "site/form.html", args)
def create(request, team_link): team = team_control.get_or_404(team_link) account = get_object_or_404(Account, user=request.user) assert_member(account, team) if request.method == "POST": form = forms.Create(request.POST) if form.is_valid(): name = form.cleaned_data["name"] content = form.cleaned_data["content"] blog = control.create(account, team, name, content) return HttpResponseRedirect("/%s/blog" % team.link) else: form = forms.Create() args = {"form": form, "form_title": _("ADD_BLOG"), "cancel_url": "/%s" % team.link} return rtr(team, "blog", request, "site/form.html", args)
def join_request_create(request, team_link): team = control.get_or_404(team_link) account = get_object_or_404(Account, user=request.user) if request.method == "POST": form = forms.CreateJoinRequest(request.POST) if form.is_valid(): application = form.cleaned_data["application"] jr = control.create_join_request(account, team, application) return HttpResponseRedirect("/%s/join_request/created" % team_link) else: form = forms.CreateJoinRequest() args = { "form" : form, "form_title" : _("JOIN_REQUEST"), "cancel_url" : "/%s" % team.link } return rtr(team, "join_request/list", request, "site/form.html", args)
def lender_cancel(request, team_link, borrow_id): team, account, borrow = _get_team_models(request, team_link, borrow_id) if request.method == "POST": form = forms.Cancel(request.POST) if form.is_valid(): control.cancel(account, borrow, form.cleaned_data["note"].strip()) url = "/%s/borrow/view/%s" % (team.link, borrow.id) return HttpResponseRedirect(url) else: form = forms.Cancel() args = { "form": form, "form_title": _("BORROW_CANCEL"), "cancel_url": "/%s/borrow/view/%s" % (team_link, borrow_id) } return rtr(team, "borrows", request, "site/form.html", args)
def join_request_create(request, team_link): team = control.get_or_404(team_link) account = get_object_or_404(Account, user=request.user) if request.method == "POST": form = forms.CreateJoinRequest(request.POST) if form.is_valid(): application = form.cleaned_data["application"] jr = control.create_join_request(account, team, application) return HttpResponseRedirect("/%s/join_request/created" % team_link) else: form = forms.CreateJoinRequest() args = { "form": form, "form_title": _("JOIN_REQUEST"), "cancel_url": "/%s" % team.link } return rtr(team, "join_request/list", request, "site/form.html", args)
def link_delete(request, team_link, link_id): account = get_object_or_404(Account, user=request.user) team = control.get_or_404(team_link) link = get_object_or_404(Link, id=link_id) if request.method == "POST": form = forms.LinkDelete(request.POST, team=team, link=link, account=account) if form.is_valid(): control.link_delete(account, team, link) return HttpResponseRedirect("/%s" % team.link) else: form = forms.LinkDelete(team=team, link=link, account=account) args = { "form" : form, "form_title" : _("LINK_DELETE?"), "form_subtitle" : link.get_label(), "cancel_url" : "/%s" % team.link } return rtr(team, "", request, "site/form.html", args)
def create(request, team_link): team = team_control.get_or_404(team_link) account = get_object_or_404(Account, user=request.user) assert_member(account, team) if request.method == "POST": form = forms.Create(request.POST) if form.is_valid(): name = form.cleaned_data["name"] content = form.cleaned_data["content"] blog = control.create(account, team, name, content) return HttpResponseRedirect("/%s/blog" % team.link) else: form = forms.Create() args = { "form" : form, "form_title" : _("ADD_BLOG"), "cancel_url" : "/%s" % team.link } return rtr(team, "blog", request, "site/form.html", args)
def lender_list(request, team_link): team = team_control.get_or_404(team_link) account = get_object_or_404(Account, user=request.user) assert_member(account, team) today = datetime.datetime.now().date() borrows = Borrow.objects.filter(team=team) if request.method == "POST": form = forms.FilterListing(request.POST, team=team) if form.is_valid(): borrows = _filter_lender_borrows(borrows, form) else: form = forms.FilterListing(team=team) borrows = borrows.exclude(finish__lt=today) # filter out past args = { "filters" : form, "page_title" : _("TEAM_BORROWS"), "list_data" : control.to_list_data(borrows, team_link=True) } return rtr(team, "borrows", request, "site/list.html", args)
def lender_rate(request, team_link, borrow_id): team, account, borrow = _get_team_models(request, team_link, borrow_id) if request.method == "POST": form = forms.Rate(request.POST) if form.is_valid(): rating = form.cleaned_data["rating"] note = form.cleaned_data["note"].strip() control.lender_rate(account, borrow, rating, note) url = "/%s/borrow/view/%s" % (team.link, borrow.id) return HttpResponseRedirect(url) else: form = forms.Rate() form_title = u"%s %s" % (_("RATE"), borrow) args = { "form" : form, "form_title" : form_title, "cancel_url" : "/%s/borrow/view/%s" % (team_link, borrow_id) } return rtr(team, "borrows", request, "site/form.html", args)
def delete(request, team_link, station_id): account = get_object_or_404(Account, user=request.user) team = team_control.get_or_404(team_link) assert_member(account, team) station = get_object_or_404(Station, team=team, id=station_id) if request.method == "POST": form = forms.Delete(request.POST, account=account, station=station) if form.is_valid(): control.delete(account, station) return HttpResponseRedirect("/%s/stations" % team.link) else: form = forms.Delete(account=account, station=station) args = { "form" : form, "form_title" : _("STATION_DELETE?"), "form_subtitle" : str(station), "cancel_url" : "/%s/station/view/%s" % (team.link, station.id) } return rtr(team, "stations", request, "site/form.html", args)
def remove_request_create(request, team_link, concerned_id): team = control.get_or_404(team_link) account = get_object_or_404(Account, user=request.user) concerned = get_object_or_404(Account, id=concerned_id) if request.method == "POST": form = forms.CreateRemoveRequest(request.POST) if form.is_valid(): reason = form.cleaned_data["reason"] control.create_remove_request(account, concerned, team, reason) return HttpResponseRedirect("/%s/remove_request/created" % team_link) else: form = forms.CreateRemoveRequest() args = { "form" : form, "form_title" : _("REMOVE_REQUEST_CREATE"), "form_subtitle" : concerned, "cancel_url" : "/%s/members" % team.link } return rtr(team, "remove_request/list", request, "site/form.html", args)
def delete(request, team_link, bike_id): team = team_control.get_or_404(team_link) account = get_object_or_404(Account, user=request.user) bike = get_object_or_404(Bike, id=bike_id, team=team) if request.method == "POST": form = forms.Delete(request.POST, bike=bike, account=account) if form.is_valid(): control.delete(account, bike) return HttpResponseRedirect("/%s/bikes" % team.link) else: form = forms.Delete(bike=bike, account=account) args = { "form" : form, "form_title" : _("BIKE_DELETE?"), "form_subtitle" : bike.name, "cancel_url" : "/%s/bike/view/%s" % (team.link, bike.id) } return rtr(team, "bikes", request, "site/form.html", args)
def join_request_process(request, team_link, join_request_id): team = control.get_or_404(team_link) account = get_object_or_404(Account, user=request.user) jr = get_object_or_404(JoinRequest, id=join_request_id) if request.method == "POST": form = forms.ProcessJoinRequest(request.POST) if form.is_valid(): response = form.cleaned_data["response"] status = form.cleaned_data["status"] control.process_join_request(account, jr, response, status) return HttpResponseRedirect("/%s/join_request/list" % team_link) else: form = forms.ProcessJoinRequest() args = { "form" : form, "form_title" : "PROCESS_JOIN_REQUEST", "cancel_url" : "/%s/join_request/list" % team.link } return rtr(team, "join_request/list", request, "site/form.html", args)
def lender_rate(request, team_link, borrow_id): team, account, borrow = _get_team_models(request, team_link, borrow_id) if request.method == "POST": form = forms.Rate(request.POST) if form.is_valid(): rating = form.cleaned_data["rating"] note = form.cleaned_data["note"].strip() control.lender_rate(account, borrow, rating, note) url = "/%s/borrow/view/%s" % (team.link, borrow.id) return HttpResponseRedirect(url) else: form = forms.Rate() form_title = u"%s %s" % (_("RATE"), borrow) args = { "form": form, "form_title": form_title, "cancel_url": "/%s/borrow/view/%s" % (team_link, borrow_id) } return rtr(team, "borrows", request, "site/form.html", args)
def edit(request, team_link, blog_id): # get data team = team_control.get_or_404(team_link) account = get_object_or_404(Account, user=request.user) blog = get_object_or_404(Blog, team=team, id=blog_id) assert_member(account, team) if request.method == "POST": form = forms.Edit(request.POST, blog=blog) if form.is_valid(): name = form.cleaned_data["name"] content = form.cleaned_data["content"] control.edit(account, blog, name, content) return HttpResponseRedirect("/%s/blog" % (team.link)) else: form = forms.Edit(blog=blog) args = {"form": form, "form_title": _("BLOG_EDIT"), "cancel_url": "/%s" % team.link} return rtr(team, "blog", request, "site/form.html", args)
def create(request, team_link): team = team_control.get_or_404(team_link) account = get_object_or_404(Account, user=request.user) assert_member(account, team) if request.method == "POST": form = CreatePageForm(request.POST, team=team) if form.is_valid(): name = form.cleaned_data["name"].strip() content = form.cleaned_data["content"] order = form.cleaned_data["order"] page = control.create(account, team, name, content, order) return HttpResponseRedirect("/%s/%s" % (team.link, page.link)) else: form = CreatePageForm(team=team) args = { "form" : form, "form_title" : _("ADD_PAGE"), "cancel_url" : "/%s" % team.link } return rtr(team, None, request, "site/form.html", args)
def lender_edit(request, team_link, borrow_id): team, account, borrow = _get_team_models(request, team_link, borrow_id) if request.method == "POST": form = forms.Edit(request.POST, borrow=borrow, is_lender=True) if form.is_valid(): control.lender_edit(account, borrow, form.cleaned_data["start"], form.cleaned_data["finish"], form.cleaned_data["bike"], form.cleaned_data["note"].strip()) url = "/%s/borrow/view/%s" % (team.link, borrow.id) return HttpResponseRedirect(url) else: form = forms.Edit(borrow=borrow, is_lender=True) args = { "form": form, "form_title": _("BORROW_EDIT"), "cancel_url": "/%s/borrow/view/%s" % (team.link, borrow.id) } return rtr(team, "borrows", request, "site/form.html", args)
def delete(request, team_link, bike_id): team = team_control.get_or_404(team_link) account = get_object_or_404(Account, user=request.user) bike = get_object_or_404(Bike, id=bike_id, team=team) if request.method == "POST": form = forms.Delete(request.POST, bike=bike, account=account) if form.is_valid(): control.delete(account, bike) return HttpResponseRedirect("/%s/bikes" % team.link) else: form = forms.Delete(bike=bike, account=account) args = { "form": form, "form_title": _("BIKE_DELETE?"), "form_subtitle": bike.name, "cancel_url": "/%s/bike/view/%s" % (team.link, bike.id) } return rtr(team, "bikes", request, "site/form.html", args)
def delete(request, team_link, page_link): team = team_control.get_or_404(team_link) account = get_object_or_404(Account, user=request.user) assert_member(account, team) page = get_object_or_404(Page, link=page_link, team=team) if request.method == "POST": form = Form(request.POST) if form.is_valid(): control.delete(account, page) return HttpResponseRedirect("/%s" % team.link) else: form = Form() cancel_url = "/%s/%s" % (team.link, page.link) args = { "form" : form, "form_title" : _("PAGE_DELETE?"), "form_subtitle" : page.name, "cancel_url" : cancel_url } return rtr(team, page.link, request, "site/form.html", args)
def lender_list(request, team_link): team = team_control.get_or_404(team_link) account = get_object_or_404(Account, user=request.user) assert_member(account, team) today = datetime.datetime.now().date() borrows = Borrow.objects.filter(team=team) if request.method == "POST": form = forms.FilterListing(request.POST, team=team) if form.is_valid(): borrows = _filter_lender_borrows(borrows, form) else: form = forms.FilterListing(team=team) borrows = borrows.exclude(finish__lt=today) # filter out past args = { "filters": form, "page_title": _("TEAM_BORROWS"), "list_data": control.to_list_data(borrows, team_link=True) } return rtr(team, "borrows", request, "site/list.html", args)
def link_create(request, team_link): account = get_object_or_404(Account, user=request.user) team = control.get_or_404(team_link) if request.method == "POST": form = forms.LinkCreate(request.POST, team=team, account=account) if form.is_valid(): control.link_create( account, team, form.cleaned_data["site"], form.cleaned_data["profile"].strip(), ) return HttpResponseRedirect("/%s" % team.link) else: form = forms.LinkCreate(team=team, account=account) args = { "form" : form, "cancel_url" : "/%s" % team.link, "form_title" : account, "form_subtitle" : _("ADD_LINK_SUBTITLE") } return rtr(team, "", request, "site/form.html", args)
def join_request_process(request, team_link, join_request_id): team = control.get_or_404(team_link) account = get_object_or_404(Account, user=request.user) jr = get_object_or_404(JoinRequest, id=join_request_id) if request.method == "POST": form = forms.ProcessJoinRequest(request.POST) if form.is_valid(): response = form.cleaned_data["response"] status = form.cleaned_data["status"] control.process_join_request(account, jr, response, status) return HttpResponseRedirect("/%s/join_request/list" % team_link) else: form = forms.ProcessJoinRequest() args = { "form": form, "form_title": "PROCESS_JOIN_REQUEST", "cancel_url": "/%s/join_request/list" % team.link } return rtr(team, "join_request/list", request, "site/form.html", args)
def respond(request, team_link, borrow_id): team, account, borrow = _get_team_models(request, team_link, borrow_id) if request.method == "POST": form = forms.Respond(request.POST, borrow=borrow, account=account) if form.is_valid(): control.respond(account, borrow, form.cleaned_data["response"], form.cleaned_data["note"].strip()) url = "/%s/borrow/view/%s" % (team.link, borrow.id) return HttpResponseRedirect(url) else: form = forms.Respond(borrow=borrow, account=account) email = account_control.get_email_or_404(borrow.borrower) args = { "station" : control.accept_station(borrow), "email" : email, "links" : borrow.borrower.links.all(), "borrow" : borrow, "form" : form, "form_title" : _("BORROW_RESPOND"), "cancel_url" : "/%s/borrow/view/%s" % (team_link, borrow_id) } return rtr(team, "borrows", request, "borrow/respond.html", args)
def remove_request_create(request, team_link, concerned_id): team = control.get_or_404(team_link) account = get_object_or_404(Account, user=request.user) concerned = get_object_or_404(Account, id=concerned_id) if request.method == "POST": form = forms.CreateRemoveRequest(request.POST) if form.is_valid(): reason = form.cleaned_data["reason"] control.create_remove_request(account, concerned, team, reason) return HttpResponseRedirect("/%s/remove_request/created" % team_link) else: form = forms.CreateRemoveRequest() args = { "form": form, "form_title": _("REMOVE_REQUEST_CREATE"), "form_subtitle": concerned, "cancel_url": "/%s/members" % team.link } return rtr(team, "remove_request/list", request, "site/form.html", args)
def comment(request, **kwargs): borrow_id = kwargs["borrow_id"] team_link = kwargs.get("team_link") account = get_object_or_404(Account, user=request.user) team = team_link and team_control.get_or_404(team_link) or None borrow = get_object_or_404(Borrow, id=borrow_id) url_prefix = team and "/%s" % team.link or "" url = "%s/borrow/view/%s" % (url_prefix, borrow_id) if request.method == "POST": form = forms.Comment(request.POST) if form.is_valid(): control.comment(account, borrow, form.cleaned_data["note"].strip()) return HttpResponseRedirect(url) else: form = forms.Comment() args = {"form": form, "form_title": _("BORROW_COMMENT"), "cancel_url": url} if team: return rtr(team, "borrows", request, "site/form.html", args) return render_response(request, "site/form.html", args)
def delete(request, team_link, blog_id): # get data team = team_control.get_or_404(team_link) account = get_object_or_404(Account, user=request.user) blog = get_object_or_404(Blog, team=team, id=blog_id) assert_member(account, team) if request.method == "POST": form = Form(request.POST) if form.is_valid(): control.delete(account, blog) return HttpResponseRedirect("/%s/blog" % team.link) else: form = Form() args = { "form" : form, "form_title" : _("BLOG_DELETE?"), "form_subtitle" : blog.name, "cancel_url" : "/%s/blog" % team.link } return rtr(team, "blog", request, "site/form.html", args)
def lender_edit(request, team_link, borrow_id): team, account, borrow = _get_team_models(request, team_link, borrow_id) if request.method == "POST": form = forms.Edit(request.POST, borrow=borrow, is_lender=True) if form.is_valid(): control.lender_edit( account, borrow, form.cleaned_data["start"], form.cleaned_data["finish"], form.cleaned_data["bike"], form.cleaned_data["note"].strip() ) url = "/%s/borrow/view/%s" % (team.link, borrow.id) return HttpResponseRedirect(url) else: form = forms.Edit(borrow=borrow, is_lender=True) args = { "form" : form, "form_title" : _("BORROW_EDIT"), "cancel_url" : "/%s/borrow/view/%s" % (team.link, borrow.id) } return rtr(team, "borrows", request, "site/form.html", args)
def edit(request, team_link, page_link): team = team_control.get_or_404(team_link) account = get_object_or_404(Account, user=request.user) assert_member(account, team) page = get_object_or_404(Page, link=page_link, team=team) if request.method == "POST": form = EditPageForm(request.POST, page=page) if form.is_valid(): name = form.cleaned_data["name"] content = form.cleaned_data["content"] order = form.cleaned_data["order"] control.edit(account, page, name, content, order) return HttpResponseRedirect("/%s/%s" % (team.link, page.link)) else: form = EditPageForm(page=page) args = { "form" : form, "form_title" : _("PAGE_EDIT"), "cancel_url" : "/%s/%s" % (team.link, page.link) } return rtr(team, page.link, request, "site/form.html", args)
def create(request, team_link, bike_id): # get parameters start = request.GET.get('start', None) finish = request.GET.get('finish', None) try: start = start and parse(start).date() or None finish = finish and parse(finish).date() or None except ValueError: start = None finish = None team = team_control.get_or_404(team_link) account = get_object_or_404(Account, user=request.user) is_lender = team_control.is_member(account, team) bike = get_object_or_404(Bike, id=bike_id) if request.method == "POST": form = forms.Create(request.POST, bike=bike, account=account, start=start, finish=finish, is_lender=is_lender) if form.is_valid(): borrow = control.create(account, bike, form.cleaned_data["start"], form.cleaned_data["finish"], form.cleaned_data["note"].strip()) return HttpResponseRedirect("/borrow/view/%s" % borrow.id) else: form = forms.Create(bike=bike, account=account, start=start, finish=finish, is_lender=is_lender) args = { "form": form, "form_title": _("BORROW_CREATE"), "cancel_url": "/%s/bike/view/%s" % (team_link, bike_id), "has_required_info": account_control.has_required_info(account) } return rtr(team, "borrows", request, "borrow/create.html", args)
def view(request, team_link, bike_id, tab): team = team_control.get_or_404(team_link) # get parameters start = request.GET.get('start', None) finish = request.GET.get('finish', None) try: start = start and parse(start).date() or None finish = finish and parse(finish).date() or None except ValueError: start = None finish = None # check user permissions requires_login = tab != "OVERVIEW" requires_membership = tab != "OVERVIEW" logged_in = request.user.is_authenticated() if not logged_in and requires_login: return HttpResponseRedirect("/accounts/login/?next=%s" % request.path) account = logged_in and get_object_or_404(Account, user=request.user) if requires_membership and not team_control.is_member(account, team): raise PermissionDenied # get data bike = get_object_or_404(Bike, id=bike_id, team=team) authorized = (account and team_control.is_member(account, team)) template = _VIEW[tab]["template"] list_data = None if tab == "BORROWS": borrows = bike.borrows.all() list_data = borrow_control.to_list_data(borrows, team_link=True) args = { "bike": bike, "list_data": list_data, "page_title": _VIEW[tab]["page_title"], "tabs": _tabs(bike, team, tab, authorized), "date_start": start, "date_finish": finish, } return rtr(team, "bikes", request, template, args)
def link_delete(request, team_link, link_id): account = get_object_or_404(Account, user=request.user) team = control.get_or_404(team_link) link = get_object_or_404(Link, id=link_id) if request.method == "POST": form = forms.LinkDelete(request.POST, team=team, link=link, account=account) if form.is_valid(): control.link_delete(account, team, link) return HttpResponseRedirect("/%s" % team.link) else: form = forms.LinkDelete(team=team, link=link, account=account) args = { "form": form, "form_title": _("LINK_DELETE?"), "form_subtitle": link.get_label(), "cancel_url": "/%s" % team.link } return rtr(team, "", request, "site/form.html", args)
def edit(request, team_link, blog_id): # get data team = team_control.get_or_404(team_link) account = get_object_or_404(Account, user=request.user) blog = get_object_or_404(Blog, team=team, id=blog_id) assert_member(account, team) if request.method == "POST": form = forms.Edit(request.POST, blog=blog) if form.is_valid(): name = form.cleaned_data["name"] content = form.cleaned_data["content"] control.edit(account, blog, name, content) return HttpResponseRedirect("/%s/blog" % (team.link)) else: form = forms.Edit(blog=blog) args = { "form" : form, "form_title" : _("BLOG_EDIT"), "cancel_url" : "/%s" % team.link } return rtr(team, "blog", request, "site/form.html", args)
def respond(request, team_link, borrow_id): team, account, borrow = _get_team_models(request, team_link, borrow_id) if request.method == "POST": form = forms.Respond(request.POST, borrow=borrow, account=account) if form.is_valid(): control.respond(account, borrow, form.cleaned_data["response"], form.cleaned_data["note"].strip()) url = "/%s/borrow/view/%s" % (team.link, borrow.id) return HttpResponseRedirect(url) else: form = forms.Respond(borrow=borrow, account=account) email = account_control.get_email_or_404(borrow.borrower) args = { "station": control.accept_station(borrow), "email": email, "links": borrow.borrower.links.all(), "borrow": borrow, "form": form, "form_title": _("BORROW_RESPOND"), "cancel_url": "/%s/borrow/view/%s" % (team_link, borrow_id) } return rtr(team, "borrows", request, "borrow/respond.html", args)
def view(request, team_link, bike_id, tab): team = team_control.get_or_404(team_link) # get parameters start = request.GET.get('start', None) finish = request.GET.get('finish', None) try: start = start and parse(start).date() or None finish = finish and parse(finish).date() or None except ValueError: start = None finish = None # check user permissions requires_login = tab != "OVERVIEW" requires_membership = tab != "OVERVIEW" logged_in = request.user.is_authenticated() if not logged_in and requires_login: return HttpResponseRedirect("/accounts/login/?next=%s" % request.path) account = logged_in and get_object_or_404(Account, user=request.user) if requires_membership and not team_control.is_member(account, team): raise PermissionDenied # get data bike = get_object_or_404(Bike, id=bike_id, team=team) authorized = (account and team_control.is_member(account, team)) template = _VIEW[tab]["template"] list_data = None if tab == "BORROWS": borrows = bike.borrows.all() list_data = borrow_control.to_list_data(borrows, team_link=True) args = { "bike" : bike, "list_data" : list_data, "page_title" : _VIEW[tab]["page_title"], "tabs" : _tabs(bike, team, tab, authorized), "date_start" : start, "date_finish" : finish, } return rtr(team, "bikes", request, template, args)