Example #1
0
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)
Example #2
0
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)
Example #3
0
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)
Example #4
0
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)
Example #5
0
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)
Example #6
0
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)
Example #7
0
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)
Example #8
0
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)
Example #9
0
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)
Example #10
0
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)
Example #11
0
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)
Example #12
0
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)
Example #13
0
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)
Example #14
0
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)
Example #15
0
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)
Example #16
0
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)
Example #17
0
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)
Example #18
0
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)
Example #19
0
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)
Example #20
0
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)
Example #21
0
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)
Example #22
0
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)
Example #23
0
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)
Example #24
0
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)
Example #25
0
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)
Example #26
0
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)
Example #27
0
def groups(request):
    context = {}
    context["groups"] = Group.objects.all()
    return r2r(request, "groups", context)
Example #28
0
def settings(request):
    context = {}
    context["settings"] = Settings.get_by_user(request.user)
    return r2r(request, "settings", context)
Example #29
0
def help(request):
    return r2r(request, "help")
Example #30
0
def help(request):
    return r2r(request, "help")
Example #31
0
def groups(request):
    context = {}
    context["groups"] = Group.objects.all()
    return r2r(request, "groups", context)
Example #32
0
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)
Example #33
0
def settings(request):
    context = {}
    context["settings"] = Settings.get_by_user(request.user)
    return r2r(request, "settings", context)