def add_question(request): context = {} settings = Settings.get_by_user(request.user) initial = {} if settings.group: initial["groups"] = [settings.group.id] if request.method == "POST": form = QuestionForm(request.POST) if form.is_valid(): question = form.save(commit=False) question.added_by = request.user question.save() revision = QuestionRevision(question=question, user=request.user, text=form.cleaned_data["body"], active=True) revision.save() return HttpResponseRedirect("/question/%s" % question.id) else: form = QuestionForm(initial=initial) context["form"] = form return r2r(request, "add_question", context)
def edit_question(request, question_id): context = {} question = Question.objects.get(pk=question_id) old_revision = question.get_active_revision() if request.method == "POST": form = QuestionForm(request.POST, instance=question) if form.is_valid(): form.save() question = form.save() if old_revision.text != form.cleaned_data["body"]: new_revision = QuestionRevision( question=question, user=request.user, text=form.cleaned_data["body"], active=True) new_revision.save() old_revision.active = False old_revision.save() return HttpResponseRedirect("/question/%s" % question_id) else: form = QuestionForm(instance=question, initial={ "body": old_revision.text }) context["form"] = form return r2r(request, "edit_question", context)
def add_question(request): context = {} settings = Settings.get_by_user(request.user) initial = {} if settings.group: initial["groups"] = [settings.group.id] if request.method == "POST": form = QuestionForm(request.POST) if form.is_valid(): question = form.save(commit=False) question.added_by = request.user question.save() revision = QuestionRevision( question=question, user=request.user, text=form.cleaned_data["body"], active=True) revision.save() return HttpResponseRedirect("/question/%s" % question.id) else: form = QuestionForm(initial=initial) context["form"] = form return r2r(request, "add_question", context)
def view_revisions(request, question_id): context = {} question = Question.objects.get(pk=question_id) context["question"] = question context["revisions"] = QuestionRevision.objects.filter( question_id=question.id).order_by('date_added') return r2r(request, "view_revisions", context)
def edit_question(request, question_id): context = {} question = Question.objects.get(pk=question_id) old_revision = question.get_active_revision() if request.method == "POST": form = QuestionForm(request.POST, instance=question) if form.is_valid(): form.save() question = form.save() if old_revision.text != form.cleaned_data["body"]: new_revision = QuestionRevision(question=question, user=request.user, text=form.cleaned_data["body"], active=True) new_revision.save() old_revision.active = False old_revision.save() return HttpResponseRedirect("/question/%s" % question_id) else: form = QuestionForm(instance=question, initial={"body": old_revision.text}) context["form"] = form return r2r(request, "edit_question", context)
def view_tag(request, tagname): context = {} approved_questions = Question.objects.filter(status__exact="Approved") pending_questions = Question.objects.filter(status__exact="Pending") banned_questions = Question.objects.filter(status__exact="Banned") settings = Settings.get_by_user(request.user) if settings.group: approved_questions = approved_questions.filter( groups__id=settings.group.id) pending_questions = pending_questions.filter( groups__id=settings.group.id) banned_questions = banned_questions.filter( groups__id=settings.group.id) context["tagname"] = tagname tagname = '"%s"' % tagname context["approved_questions"] = TaggedItem.objects.get_by_model( approved_questions, tagname) context["pending_questions"] = TaggedItem.objects.get_by_model( pending_questions, tagname) context["banned_questions"] = TaggedItem.objects.get_by_model( banned_questions, tagname) context["settings"] = settings return r2r(request, "view_tag", context)
def failure_handler(request, message, status=None, template_name=None, exception=None): context = { 'allowed_domains': getattr(django_settings, "OPENID_RESTRICT_TO_DOMAINS", tuple()), } return r2r(request, "login_failed", context)
def view_orphans(request): context = {} approved_questions = Question.objects.filter(status__exact="Approved", groups=None) pending_questions = Question.objects.filter(status__exact="Pending", groups=None) banned_questions = Question.objects.filter(status__exact="Banned", groups=None) context["approved_questions"] = approved_questions context["pending_questions"] = pending_questions context["banned_questions"] = banned_questions return r2r(request, "view_orphans", context)
def edit_settings(request): context = {} settings = Settings.get_by_user(request.user) if request.method == "POST": form = SettingsForm(request.POST, instance=settings) if form.is_valid(): form.save() return HttpResponseRedirect("/settings") else: form = SettingsForm(instance=settings) context["form"] = form return r2r(request, "edit_settings", context)
def add_group(request): context = {} if request.method == "POST": form = GroupForm(request.POST) if form.is_valid(): group = form.save(commit=False) group.added_by = request.user group.save() return HttpResponseRedirect("/group/%s" % group.id) else: form = GroupForm() context["form"] = form return r2r(request, "add_group", context)
def index(request): context = {} approved_questions = Question.objects.filter(status__exact="Approved") pending_questions = Question.objects.filter(status__exact="Pending") banned_questions = Question.objects.filter(status__exact="Banned") settings = Settings.get_by_user(request.user) if settings.group: approved_questions = approved_questions.filter(groups__id=settings.group.id) pending_questions = pending_questions.filter(groups__id=settings.group.id) banned_questions = banned_questions.filter(groups__id=settings.group.id) context["approved_questions"] = approved_questions context["pending_questions"] = pending_questions context["banned_questions"] = banned_questions context["settings"] = settings return r2r(request, "index", context)
def view_group(request, group_id): context = {} context["group"] = Group.objects.get(pk=group_id) approved_questions = Question.objects.filter(status__exact="Approved") pending_questions = Question.objects.filter(status__exact="Pending") banned_questions = Question.objects.filter(status__exact="Banned") approved_questions = approved_questions.filter(groups__id=group_id) pending_questions = pending_questions.filter(groups__id=group_id) banned_questions = banned_questions.filter(groups__id=group_id) context["approved_questions"] = approved_questions context["pending_questions"] = pending_questions context["banned_questions"] = banned_questions context["settings"] = Settings.get_by_user(request.user) return r2r(request, "view_group", context)
def edit_group(request, group_id): context = {} group = Group.objects.get(pk=group_id) if not request.user.is_staff and request.user.email != group.added_by.email: return HttpResponseRedirect("/group/%s" % group_id) if request.method == "POST": form = GroupForm(request.POST, instance=group) if form.is_valid(): form.save() return HttpResponseRedirect("/group/%s" % group_id) else: form = GroupForm(instance=group) context["form"] = form return r2r(request, "edit_group", context)
def users(request): context = {} counts = {} for questions in Question.objects.all(): email = questions.added_by.email if email not in counts: counts[email] = 0 counts[email] += 1 for user in User.objects.all(): if user.email not in counts: counts[user.email] = 0 # Double sort since sort is stable. Want names alpha after count context["counts"] = sorted(counts.items(), key=operator.itemgetter(0)) context["counts"] = sorted(context["counts"], key=operator.itemgetter(1), reverse=True) return r2r(request, "users", context)
def view_question(request, question_id): context = { "active_revision": True, "settings": Settings.get_by_user(request.user), } revision_id = request.GET.get("revision_id", None) question = Question.objects.get(pk=question_id) active_revision = question.get_active_revision() revision = active_revision if revision_id is not None and revision.id != revision_id: context["active_revision"] = False revision = QuestionRevision.objects.get(question_id=question_id, pk=revision_id) context["question"] = question context["revision"] = revision return r2r(request, "view_question", context)
def index(request): context = {} approved_questions = Question.objects.filter(status__exact="Approved") pending_questions = Question.objects.filter(status__exact="Pending") banned_questions = Question.objects.filter(status__exact="Banned") settings = Settings.get_by_user(request.user) if settings.group: approved_questions = approved_questions.filter( groups__id=settings.group.id) pending_questions = pending_questions.filter( groups__id=settings.group.id) banned_questions = banned_questions.filter( groups__id=settings.group.id) context["approved_questions"] = approved_questions context["pending_questions"] = pending_questions context["banned_questions"] = banned_questions context["settings"] = settings return r2r(request, "index", context)
def view_tag(request, tagname): context = {} approved_questions = Question.objects.filter(status__exact="Approved") pending_questions = Question.objects.filter(status__exact="Pending") banned_questions = Question.objects.filter(status__exact="Banned") settings = Settings.get_by_user(request.user) if settings.group: approved_questions = approved_questions.filter(groups__id=settings.group.id) pending_questions = pending_questions.filter(groups__id=settings.group.id) banned_questions = banned_questions.filter(groups__id=settings.group.id) context["tagname"] = tagname tagname = '"%s"' % tagname context["approved_questions"] = TaggedItem.objects.get_by_model(approved_questions, tagname) context["pending_questions"] = TaggedItem.objects.get_by_model(pending_questions, tagname) context["banned_questions"] = TaggedItem.objects.get_by_model(banned_questions, tagname) context["settings"] = settings return r2r(request, "view_tag", context)
def index(request): ctxt = {} page = request.GET.get("page", 1) limit = int(request.GET.get("limit", 50)) event_list = Event.objects.order_by('-start') paginator = Paginator(event_list, limit) try: events = paginator.page(page) except PageNotAnInteger: events = paginator.page(1) except EmptyPage: events = paginator.page(paginator.num_pages) ctxt['events'] = events ctxt['limit'] = limit ctxt['page'] = int(page) ctxt['num_pages'] = int(paginator.num_pages) return r2r(request, "index", ctxt)
def view_revisions(request, question_id): context = {} question = Question.objects.get(pk=question_id) context["question"] = question context["revisions"] = QuestionRevision.objects.filter(question_id=question.id).order_by('date_added') return r2r(request, "view_revisions", context)
def groups(request): context = {} context["groups"] = Group.objects.all() return r2r(request, "groups", context)
def settings(request): context = {} context["settings"] = Settings.get_by_user(request.user) return r2r(request, "settings", context)
def help(request): return r2r(request, "help")