Example #1
0
def edit_entry(request, slug, template='submissions/edit.html'):
    entry = Entry.objects.get(slug=slug)
    if not entry.editable_by(request.user):
        return action_unavailable_response(request, case='no_edit_rights')
    if not request.challenge.is_open():
        return action_unavailable_response(request, case='challenge_closed')
    if request.method == 'POST':
        form = EntryForm(request.POST, request.FILES, instance=entry)
        if form.is_valid():
            entry = form.save(commit=False)
            entry.slug = slugify(entry.title)
            form.save()
            if entry.to_market == True:
                return HttpResponseRedirect(settings.MARKETPLACE_URL)
            else:
                messages.success(request, _('<strong>Game edited!</strong>'))
                return HttpResponseRedirect(reverse('submissions.entry_single',
                    kwargs={'slug': slugify(entry.title)}))
        else:
            data = {
                'categories': Category.objects.all(),
                'form': form,
                'mode': 'edit',
            }
    else:
        data = {
            'categories': Category.objects.all(),
            'form': EntryForm(instance=entry),
            'mode': 'edit',
        }
    return render(request, template, data)
Example #2
0
def create(request, template='submissions/create.html'):
    if not request.challenge.is_open():
        return action_unavailable_response(request, case='challenge_closed')
    if request.method == 'POST':
        form = NewEntryForm(request.POST, request.FILES)
        if form.is_valid():
            entry = form.save(commit=False)
            entry.created_by = request.user.get_profile()
            entry.slug = slugify(entry.title)
            form.save()
            if entry.to_market == True:
                return HttpResponseRedirect(settings.MARKETPLACE_URL)
            else:
                messages.success(request, _('<strong>Game submitted!</strong>'))
                return HttpResponseRedirect(reverse('submissions.entry_single',
                    kwargs={'slug': entry.slug}))
        else:
            data = {
                'categories': Category.objects.all(),
                'form': form
            }
    else:
        data = {
            'categories': Category.objects.all(),
            'form': NewEntryForm()
        }
    return render(request, template, data)
Example #3
0
def edit_entry(request, slug, template='submissions/edit.html'):
    entry = Entry.objects.get(slug=slug)
    if not entry.editable_by(request.user):
        return action_unavailable_response(request, case='no_edit_rights')
    if request.method == 'POST':
        form = EntryForm(request.POST, instance=entry)
        if form.is_valid():
            entry = form.save(commit=False)
            entry.slug = slugify(entry.title)
            form.save()
            if entry.to_market == True:
                return HttpResponseRedirect(settings.MARKETPLACE_URL)
            else:
                return HttpResponseRedirect(reverse('submissions.entry_list',
                    kwargs={'category': 'all'}))
        else:
            data = {
                'categories': Category.objects.all(),
                'form': form,
            }
    else:
        data = {
            'categories': Category.objects.all(),
            'form': EntryForm(instance=entry),
        }
    return render(request, template, data)
Example #4
0
def edit_entry(request, slug, template="submissions/edit.html"):
    entry = Entry.objects.get(slug=slug)
    if not entry.editable_by(request.user):
        return action_unavailable_response(request, case="no_edit_rights")
    if not request.challenge.is_open():
        return action_unavailable_response(request, case="challenge_closed")
    if request.method == "POST":
        form = EntryForm(request.POST, request.FILES, instance=entry)
        if form.is_valid():
            entry = form.save(commit=False)
            entry.slug = slugify(entry.title)
            form.save()
            if entry.to_market == True:
                return HttpResponseRedirect(settings.MARKETPLACE_URL)
            else:
                messages.success(request, _("<strong>Game edited!</strong>"))
                return HttpResponseRedirect(reverse("submissions.entry_single", kwargs={"slug": slugify(entry.title)}))
        else:
            data = {"categories": Category.objects.all(), "form": form, "mode": "edit"}
    else:
        data = {"categories": Category.objects.all(), "form": EntryForm(instance=entry), "mode": "edit"}
    return render(request, template, data)
Example #5
0
def export_csv(request, template='submissions/table.html'):
    if not request.user.is_staff:
        return action_unavailable_response(request, case='not_staff')

    response = HttpResponse(content_type='text/csv')
    response['Content-Disposition'] = 'attachment; filename="gameon_entries.csv"'

    entry_set = Entry.objects.all().order_by('-pk')

    # using the custom Unicode writer so the view doesn't explode
    writer = UnicodeWriter(response)
    # Write out the header row
    writer.writerow([
        'GAME NAME',
        'CATEGORY',
        'GAME WEBSITE',
        'GAME DESCRIPTION',
        'GAME SUBMISSION URL',
        'GAME VIDEO URL',
        'SUBMITTED BY',
        'SUBMITTED BIO',
        'SUBMIT TO MARKETPLACE?'
    ])
    for e in entry_set:
        writer.writerow([
            e.title,
            e.category.name,
            e.url,
            e.description,
            e.get_absolute_url(),
            e.video_url,
            e.created_by.display_name,
            e.created_by.bio,
            str(e.to_market),
        ])

    return response