コード例 #1
0
def new(request):
    if not request.user.is_authenticated() or is_lazy_user(request.user):
        return HttpResponseRedirect(reverse("user:login"))

    if request.method == 'POST':
        form = RoadmapForm(request.POST)
        settings_form = RoadmapSettingsForm(request.POST)
        is_publish = request.POST["submitbutton"] == "Publish"

        if form.is_valid() and settings_form.is_valid():
            with reversion.create_revision():
                roadmap = form.save(commit=False)
                roadmap.save()
                reversion.set_user(request.user)

            rms = settings_form.save(commit=False)
            if not request.user.is_superuser:
                rms.sudo_listed_in_main = models.RoadmapSettings._meta.get_field_by_name('sudo_listed_in_main')[0].default # TODO hack

            if is_publish:
                rms.published = True

            rms.roadmap = roadmap
            prof = request.user.profile
            rms.creator = prof
            rms.save()
            rms.owners.add(prof)
            rms.save()

            return HttpResponseRedirect('/roadmaps/%s/%s'
                                        % (request.user.username,
                                           settings_form.cleaned_data['url_tag']))
    else:
        try:
            initial_txt = open(os.path.join(os.path.dirname(os.path.realpath(__file__)), "templates/roadmap-instructions.txt")).read()
        except:
            sys.stderr.write("unable to open roadmap instructions txt\n")
            initial_txt = ""
        form = RoadmapForm(initial={'body': initial_txt})
        settings_form = RoadmapSettingsForm()

    return render(request, 'roadmap-new.html', {
        'form': form,
        'settings_form': settings_form,
        'can_edit': True
        })
コード例 #2
0
def settings(request, in_username, tag):
    # check that the user is logged in
    if not request.user.is_authenticated() or is_lazy_user(request.user):
        return HttpResponseRedirect(reverse("user:login"))

    # get the roadmap and settings
    try:
        rm_dict = get_roadmap_objs(in_username, tag)
    except:
        return HttpResponse(status=404)
    roadmap = rm_dict["roadmap"]
    roadmap_settings = rm_dict["settings"]

    # make sure the user is capable of changing the settings
    if (not roadmap_settings.can_change_settings(request.user)):
        return HttpResponse(status=401)

    if request.method == 'POST':
        form = RoadmapSettingsForm(request.POST, instance=roadmap_settings)
        rms_sudo_listed_in_main = roadmap_settings.sudo_listed_in_main
        if form.is_valid():
            rs = form.save(commit=False)
            if not request.user.is_superuser:
                rs.sudo_listed_in_main = rms_sudo_listed_in_main
            rs.save()

            return HttpResponseRedirect('/roadmaps/%s/%s' % (in_username, form.data['url_tag']))
    elif request.method == 'GET':
        form = RoadmapSettingsForm(instance=roadmap_settings)
    else:
        return HttpResponse(status=403)

    common_rm_dict = get_common_roadmap_dict(roadmap, roadmap_settings, request.user, in_username, tag)

    return render(request, 'roadmap-settings.html', dict({
        'settings_form': form,
        'page_class': "settings",
        }, **common_rm_dict))
コード例 #3
0
def new(request):
    if not request.user.is_authenticated() or is_lazy_user(request.user):
        return HttpResponseRedirect(reverse("user:login"))

    if request.method == 'POST':
        form = RoadmapForm(request.POST)
        settings_form = RoadmapSettingsForm(request.POST)
        is_publish = request.POST["submitbutton"] == "Publish"

        if form.is_valid() and settings_form.is_valid():
            with reversion.create_revision():
                roadmap = form.save(commit=False)
                roadmap.save()
                reversion.set_user(request.user)

            rms = settings_form.save(commit=False)
            if not request.user.is_superuser:
                rms.sudo_listed_in_main = models.RoadmapSettings._meta.get_field_by_name(
                    'sudo_listed_in_main')[0].default  # TODO hack

            if is_publish:
                rms.published = True

            rms.roadmap = roadmap
            prof = request.user.profile
            rms.creator = prof
            rms.save()
            rms.owners.add(prof)
            rms.save()

            return HttpResponseRedirect(
                '/roadmaps/%s/%s' %
                (request.user.username, settings_form.cleaned_data['url_tag']))
    else:
        try:
            initial_txt = open(
                os.path.join(os.path.dirname(os.path.realpath(__file__)),
                             "templates/roadmap-instructions.txt")).read()
        except:
            sys.stderr.write("unable to open roadmap instructions txt\n")
            initial_txt = ""
        form = RoadmapForm(initial={'body': initial_txt})
        settings_form = RoadmapSettingsForm()

    return render(request, 'roadmap-new.html', {
        'form': form,
        'settings_form': settings_form,
        'can_edit': True
    })
コード例 #4
0
def settings(request, in_username, tag):
    # check that the user is logged in
    if not request.user.is_authenticated() or is_lazy_user(request.user):
        return HttpResponseRedirect(reverse("user:login"))

    # get the roadmap and settings
    try:
        rm_dict = get_roadmap_objs(in_username, tag)
    except:
        return HttpResponse(status=404)
    roadmap = rm_dict["roadmap"]
    roadmap_settings = rm_dict["settings"]

    # make sure the user is capable of changing the settings
    if (not roadmap_settings.can_change_settings(request.user)):
        return HttpResponse(status=401)

    if request.method == 'POST':
        form = RoadmapSettingsForm(request.POST, instance=roadmap_settings)
        rms_sudo_listed_in_main = roadmap_settings.sudo_listed_in_main
        if form.is_valid():
            rs = form.save(commit=False)
            if not request.user.is_superuser:
                rs.sudo_listed_in_main = rms_sudo_listed_in_main
            rs.save()

            return HttpResponseRedirect('/roadmaps/%s/%s' %
                                        (in_username, form.data['url_tag']))
    elif request.method == 'GET':
        form = RoadmapSettingsForm(instance=roadmap_settings)
    else:
        return HttpResponse(status=403)

    common_rm_dict = get_common_roadmap_dict(roadmap, roadmap_settings,
                                             request.user, in_username, tag)

    return render(
        request, 'roadmap-settings.html',
        dict({
            'settings_form': form,
            'page_class': "settings",
        }, **common_rm_dict))