Esempio n. 1
0
def delete_letter(request, id):
    data = {}
    letter = Letter.objects.get(id=id)

    if not request.user in letter.owners.all():
        messages.error(request, _(u"Zugriff verweigert!"))
        return redirect_to_prev_page(request)
    
    letter.delete()
    messages.success(request, _(u"Brief gelöscht!"))
    return redirect_to_prev_page(request)
Esempio n. 2
0
def edit_letter(request, id):
    data = {}

    letter = Letter.objects.get(id=id)

    if not request.user in letter.owners.all():
        messages.error(request, _(u"Zugriff verweigert!"))
        return redirect_to_prev_page(request)

    if not request.method == 'POST':
        letter_form = LetterForm(instance=letter)
    else:
        letter_form = LetterForm(request.POST, instance=letter)
        if letter_form.is_valid():
            letter = letter_form.save()
            messages.success(request, _(u"Brief erfolgreich bearbeitet."))
            return redirect(letter)
        else:
            messages.error(request, _(u"Es gibt noch Fehler im Formular."))
    
    helper = FormHelper()

    helper.form_id = "foobar"
    helper.form_class = "search"

    submit = Submit("send", _(u"Speichern"))
    helper.add_input(submit)
    reset = Submit("reset", _(u"Zurücksetzen"))
    helper.add_input(reset)

    data['form'] = letter_form
    data['helper'] = helper
    data.update(csrf(request))
    return render_to_response("lettr/edit_letter.html", data, context_instance=RequestContext(request))
Esempio n. 3
0
def login(request):
    data = {}

    if not ('username' in request.POST and 'password' in request.POST):
        messages.error(request, _(u"Login fehlgeschlagen: Kein Username und/oder Passwort übermittelt."))
        return redirect_to_prev_page(request)
    username = request.POST['username']
    password = request.POST['password']
    user = authenticate(username=username, password=password)

    if user is not None:
        if user.is_active:
            django_login(request, user)
            messages.success(request, _(u"Login erfolgreich!"))
        else:
            messages.error(request, _(u"Benutzer ist inaktiv!"))
    else:
        messages.error(request, _(u"Falsches Passwort!"))
    return redirect_to_prev_page(request)
Esempio n. 4
0
def show_letter(request, id):   
    data = {}
    
    letter = Letter.objects.get(id=id)
    data['letter'] = letter

    if not request.user in letter.owners.all():
        messages.error(request, _(u"Zugriff verweigert!"))
        return redirect_to_prev_page(request)
    
    return render_to_response("lettr/show_letter.html", data, context_instance=RequestContext(request))
Esempio n. 5
0
def generate_gbrief_png(request, id):
    data = {}
    data['letter'] = Letter.objects.get(id=id)

    if not request.user in data['letter'].owners.all():
        messages.error(request, _(u"Zugriff verweigert!"))
        return redirect_to_prev_page(request)

    # Create the HttpResponse object with the appropriate PNG headers.
    response = HttpResponse(mimetype='image/png')
    response.write(process_latex("lettr/gbrief.tex", data, type="png"))
    return response
Esempio n. 6
0
def generate_gbrief_pdf(request, id):
    data = {}
    data['letter'] = Letter.objects.get(id=id)

    if not request.user in data['letter'].owners.all():
        messages.error(request, _(u"Zugriff verweigert!"))
        return redirect_to_prev_page(request)

    # Create the HttpResponse object with the appropriate PDF headers.
    response = HttpResponse(mimetype='application/pdf')
    filename = data['letter'].heading.replace(' ', '_').replace(u'ä', 'ae').replace(u"ö", "oe").replace(u'ü', 'ue').replace(u'ß', 'ss').replace(u'Ä', 'AE').replace(u'Ö', 'OE').replace(u'Ü', 'UE').encode('ascii', 'ignore')
    response['Content-Disposition'] = 'attachment; filename=%s.pdf' % filename
    response.write(process_latex("lettr/gbrief.tex", data))
    return response
Esempio n. 7
0
def generate_gbrief_tex(request, id):
    data = {}
    data['letter'] = Letter.objects.get(id=id)

    if not request.user in data['letter'].owners.all():
        messages.error(request, _(u"Zugriff verweigert!"))
        return redirect_to_prev_page(request)

    # Create the HttpResponse object with the appropriate TeX headers.
    response = HttpResponse(mimetype='text/plain')
    t = loader.get_template("lettr/gbrief.tex")
    r = t.render(Context(data))
    response.write(r)
    return response
Esempio n. 8
0
def edit_letter_ownership(request, id):
    data = {}

    letter = Letter.objects.get(id=id)
    data['letter'] = letter

    if not request.user in letter.owners.all():
        messages.error(request, _(u"Zugriff verweigert!"))
        return redirect_to_prev_page(request)

    if 'add' in request.GET:
        try:
            user = User.objects.get(username=request.GET['add'])
            if user in letter.owners.all():
                message.error(request, _(u"Benutzer '%(name)s' ist schon berechtigt." % {'name':user.username}))
            else:
                ownership = Ownership_Letter.objects.create(owner=user, letter=letter)
                messages.success(request, _(u"Benutzer '%(name)s' Rechte gegeben." % {'name':user.username}))
        except:
            messages.error(request, _(u"Benutzer '%(name)s' nicht gefunden." % {'name':request.GET['add']}))

    if 'remove' in request.GET:
        try:
            user = User.objects.get(username=request.GET['remove'])
            if not user in letter.owners.all():
                message.error(request, _(u"Benutzer '%(name)s' ist kein Besitzer dieses Briefes." % {'name':user.username}))
            else:
                ownership = Ownership_Letter.objects.get(owner=user, letter=letter)
                ownership.delete()
                messages.success(request, _(u"Benutzer '%(name)s' Rechte entzogen." % {'name':user.username}))
        except:
            messages.error(request, _(u"Benutzer '%(name)s' nicht gefunden." % {'name':request.GET['remove']}))
    
    if request.GET:
        return redirect(edit_letter_ownership, id)

    data['users'] = [user for user in User.objects.all() if not user in letter.owners.all() and not user == request.user]
    data['owners'] = [user for user in letter.owners.all() if not user == request.user]

    return render_to_response("lettr/edit_letter_ownership.html", data, context_instance=RequestContext(request))