def liste_vorschlaege(request): seite = 1 # Falls moeglich lies die anzuzeigende Seite aus dem GET-Parameter page # und berechnen den notwendigen Offset if request.GET.get("page", None): try: seite = int(request.GET["page"]) except ValueError: seite = 1 finally: seite = 1 if seite < 1 else seite offset = (seite - 1) * 10 daten = [] vorschlaege = Vorschlag.objects.filter(freigegeben=True).order_by("-erstellt_datum") seitenzahl = int(math.ceil(vorschlaege.count() / 10.0)) # Wenn nicht genuegend Eintraege vorhanden sind, dann leite den Nutzer auf die letzte Seite if offset > 0 and vorschlaege.count() < offset + 10: return redirect(reverse("liste_vorschlaege") + "?page=%i" % (seitenzahl,)) for v in vorschlaege[offset:offset + 10]: status = list(v.vorschlagstatus_set.all().order_by("-erstellt_datum")[:1]) if status: s = status[0] daten.append({"vorschlag": v, "status": dict(VORSCHLAG_STATUS).get(s.status, _("Unknown")), "statusbild": get_status_bild(s.status)}) else: daten.append({"vorschlag": v, "status": _("Unknown")}) sprache = request.LANGUAGE_CODE activate("en") url_en = reverse("liste_vorschlaege") + "?page=%d" % (seite,) activate("de") url_de = reverse("liste_vorschlaege") + "?page=%d" % (seite,) activate(sprache) template_daten = { "daten": daten, "url_sende_vorschlag": reverse("sende_vorschlag"), "sprache": sprache, "url_en": url_en, "url_de": url_de, "seite": seite, "seitenzahl": seitenzahl, } return render(request, "opendata_vorschlag/liste_vorschlaege.html", template_daten)
def liste_vorschlaege(request): offset = 0 page = 1 if request.GET.has_key("page"): tmp = request.GET["page"] if tmp and int(tmp) >= 1: page = int(request.GET["page"]) offset = (page-1)*10 vorschlaege = Vorschlag.objects.filter(freigegeben=True).order_by("-erstellt_datum") daten = [] for v in vorschlaege[offset:offset+10]: status = list(v.vorschlagstatus_set.all()[:1]) if status: s = status[0] daten.append({"vorschlag": v, "status": get_bezeichnung_auswahl(VORSCHLAG_STATUS,s.status), "statusbild": get_status_bild(s.status)}) else: daten.append({"vorschlag": v, "status": _("Unknown")}) num_pages = len(vorschlaege) / 10 + (1 if len(vorschlaege) % 10 else 0) pagination = "" if num_pages > 1: pagination = "<div class='pagination'><ul>" if page > 1: pagination += "<li><a href=\"?page=%d\">« zurück</a></li><li><a href=\"?page=1\">1</a>" % (page-1,) if page-3 > 1: pagination += "<li class=\"disabled\"><a href=\"#\">...</a></li>" for i in [2,1]: if page-i > 1: pagination += "<li><a href=\"?page=%d\">%d</a></li>" % (page-i, page-i,) pagination += "<li class=\"active\"><a href=\"?page=%d\">%d</a></li>" % (page, page,) for i in [1,2]: if page+i < num_pages: pagination += "<li><a href=\"?page=%d\">%d</a></li>" % (page+i, page+i,) if page+3 < num_pages: pagination += "<li class=\"disabled\"><a href=\"#\">...</a></li>" if page < num_pages: pagination += "<li><a href=\"?page=%d\">%d</a><li><a href=\"?page=%d\">vor »</a></li>" % (num_pages, num_pages, page+1,) pagination += "</ul></div>" t = loader.get_template("opendata_vorschlag/liste_vorschlaege.html") sprache = request.LANGUAGE_CODE activate("en") url_en = reverse("liste_vorschlaege") + "?page=%d" % (page,) activate("de") url_de = reverse("liste_vorschlaege") + "?page=%d" % (page,) activate(sprache) c = RequestContext(request, { "daten": daten, "url_sende_vorschlag": reverse("sende_vorschlag"), "sprache": sprache, "url_en": url_en, "url_de": url_de, "pagination": pagination, }) return HttpResponse(t.render(c))
def details_vorschlag(request, vorschlag_id): try: vorschlag = Vorschlag.objects.get(pk=vorschlag_id, freigegeben=True) except Vorschlag.DoesNotExist: raise Http404 status = VorschlagStatus.objects.filter(vorschlag=vorschlag).order_by("-erstellt_datum") status_daten = [] for s in status: status_daten.append({"daten":s, "titel": dict(VORSCHLAG_STATUS).get(s.status, _("Unknown")), "bild": get_status_bild(s.status)}) sprache = request.LANGUAGE_CODE activate("en") url_en = reverse("details_vorschlag", args=(vorschlag_id,)) activate("de") url_de = reverse("details_vorschlag", args=(vorschlag_id,)) activate(sprache) template_daten = { "vorschlag": vorschlag, "status_daten": status_daten, "url_sende_vorschlag": reverse("sende_vorschlag"), "sprache": sprache, "url_en": url_en, "url_de": url_de, } return render(request, "opendata_vorschlag/details_vorschlag.html", template_daten)
def details_vorschlag(request, vorschlag_id): try: vorschlag = Vorschlag.objects.get(pk=vorschlag_id, freigegeben=True) except Vorschlag.DoesNotExist: raise Http404 status = VorschlagStatus.objects.filter(vorschlag=vorschlag).order_by("-erstellt_datum") status_daten = [] for s in status: status_daten.append({"daten":s, "titel": get_bezeichnung_auswahl(VORSCHLAG_STATUS, s.status),"bild": get_status_bild(s.status)}) t = loader.get_template("opendata_vorschlag/details_vorschlag.html") sprache = request.LANGUAGE_CODE activate("en") url_en = reverse("details_vorschlag", args=(vorschlag_id,)) activate("de") url_de = reverse("details_vorschlag", args=(vorschlag_id,)) activate(sprache) c = RequestContext(request, { "vorschlag": vorschlag, "status_daten": status_daten, "url_sende_vorschlag": reverse("sende_vorschlag"), "sprache": sprache, "url_en": url_en, "url_de": url_de, }) return HttpResponse(t.render(c))