Example #1
0
def register(request):
    if request.method == 'POST':
        if request.POST.get(
            'username',
            None) and request.POST.get(
            'password',
            None) and request.POST.get(
            'email',
                None):
            user = User.objects.create_user(
                request.POST['username'], request.POST['email'], None)
            user.set_password(request.POST['password'])
            user.save()
            user = User.objects.get(username=request.POST['username'])
            si = StreamItem(
                action_type='C',
                user=user,
                content_type=ContentType.objects.get_for_model(User),
                object_id=user.id)
            si.save()
            return HttpResponseRedirect("/~%s" % user.username)
        else:
            messages.add_message(
                request, messages.WARNING,
                '<div class="failure">Oops!  All fields required!</div>')
    return render(request, "registration/create_user.html", {})
Example #2
0
def delete_character(request, character_id):
    character = get_object_or_404(Character, id=character_id)
    if (request.user != character.user):
        # TODO StreamItem flagging user for attempting to delete a character
        # not theirs
        messages.add_message(
            request, messages.ERROR,
            '<div class="error">You may only delete your own '
            'characters!</div>')
        return render(request, 'permission_denied.html', {})
    if (request.POST.get('confirm', None) is not None):
        for morph in character.morph_set.all():
            for description in morph.description_set.all():
                description.delete()
            morph.delete()
        character.delete()
        si = StreamItem(
            action_type='D',
            user=request.user,
            content_type=ContentType.objects.get_for_model(Character),
            object_id=character_id)
        si.save()
        return HttpResponseRedirect("/~%s" % request.user.username)
    else:
        return render(
            request, 'characters/character/delete.html',
            {'character': character})
Example #3
0
def attach_character_to_location(request, location_id):
    location = get_object_or_404(Location, id=location_id)
    if (request.GET.get('character_id', None) is None):
        messages.add_message(
            request, messages.ERROR,
            '<div class="error">Must attach a character to a location!</div>')
        return HttpResponseRedirect(request.META['HTTP_REFERER'])
    character = get_object_or_404(Character, id=request.GET['character_id'])
    if (request.user != character.user):
        messages.add_message(
            request, messages.ERROR,
            '<div class="error">You may only attach your own '
            'characters!</div>')
        # TODO flag user
        return render(request, 'permission_denied.html', {})
    if (CharacterLocation.objects.filter(character=character,
                                         location=location).count() > 0):
        messages.add_message(
            request, messages.ERROR,
            '<div class="warning">That character is already attached to this '
            'location!</div>')
        return HttpResponseRedirect(location.get_absolute_url())
    cl = CharacterLocation(character=character,
                           location=location,
                           name_at_location=request.GET.get('as', ''))
    cl.save()
    si = StreamItem(action_type='LA',
                    user=request.user,
                    content_type=ContentType.objects.get_for_model(Location),
                    object_id=location.id)
    si.save()
    return HttpResponseRedirect(location.get_absolute_url())
Example #4
0
def edit_morph(request, morph_id):
    morph = get_object_or_404(Morph, id=morph_id)
    form = MorphForm(instance=morph)
    if (request.user != morph.user):
        # TODO flag user
        messages.add_message(
            request, messages.ERROR,
            '<div class="error">You may only edit a morph that you '
            'own!</div>')
        return HttpResponseRedirect(morph.get_absolute_url())
    if (request.method == "POST"):
        form = MorphForm(request.POST, instance=morph)
        if (form.is_valid()):
            form.save()
            si = StreamItem(
                action_type='U',
                user=request.user,
                content_type=ContentType.objects.get_for_model(Morph),
                object_id=morph_id)
            si.save()
            ajax_list_species(request)
            ajax_list_genders(request)
            return HttpResponseRedirect(morph.get_absolute_url())
    return render(
        request,
        'characters/morph/edit.html',
        {
            'form': form,
            'species_category': _species_select_dropdown(
                morph.species_category.id)})
Example #5
0
def edit_morph(request, morph_id):
    morph = get_object_or_404(Morph, id=morph_id)
    form = MorphForm(instance=morph)
    if (request.user != morph.user):
        # TODO flag user
        messages.add_message(
            request, messages.ERROR,
            '<div class="error">You may only edit a morph that you '
            'own!</div>')
        return HttpResponseRedirect(morph.get_absolute_url())
    if (request.method == "POST"):
        form = MorphForm(request.POST, instance=morph)
        if (form.is_valid()):
            form.save()
            si = StreamItem(
                action_type='U',
                user=request.user,
                content_type=ContentType.objects.get_for_model(Morph),
                object_id=morph_id)
            si.save()
            ajax_list_species(request)
            ajax_list_genders(request)
            return HttpResponseRedirect(morph.get_absolute_url())
    return render(
        request, 'characters/morph/edit.html', {
            'form': form,
            'species_category': _species_select_dropdown(
                morph.species_category.id)
        })
Example #6
0
def attach_character_to_location(request, location_id):
    location = get_object_or_404(Location, id=location_id)
    if (request.GET.get('character_id', None) is None):
        messages.add_message(
            request, messages.ERROR,
            '<div class="error">Must attach a character to a location!</div>')
        return HttpResponseRedirect(request.META['HTTP_REFERER'])
    character = get_object_or_404(Character, id=request.GET['character_id'])
    if (request.user != character.user):
        messages.add_message(
            request, messages.ERROR,
            '<div class="error">You may only attach your own '
            'characters!</div>')
        # TODO flag user
        return render(request, 'permission_denied.html', {})
    if (CharacterLocation.objects.filter(
            character=character, location=location).count() > 0):
        messages.add_message(
            request, messages.ERROR,
            '<div class="warning">That character is already attached to this '
            'location!</div>')
        return HttpResponseRedirect(location.get_absolute_url())
    cl = CharacterLocation(
        character=character,
        location=location,
        name_at_location=request.GET.get('as', ''))
    cl.save()
    si = StreamItem(
        action_type='LA',
        user=request.user,
        content_type=ContentType.objects.get_for_model(Location),
        object_id=location.id)
    si.save()
    return HttpResponseRedirect(location.get_absolute_url())
Example #7
0
def delete_character(request, character_id):
    character = get_object_or_404(Character, id=character_id)
    if (request.user != character.user):
        # TODO StreamItem flagging user for attempting to delete a character
        # not theirs
        messages.add_message(
            request, messages.ERROR,
            '<div class="error">You may only delete your own '
            'characters!</div>')
        return render(request, 'permission_denied.html', {})
    if (request.POST.get('confirm', None) is not None):
        for morph in character.morph_set.all():
            for description in morph.description_set.all():
                description.delete()
            morph.delete()
        character.delete()
        si = StreamItem(
            action_type='D',
            user=request.user,
            content_type=ContentType.objects.get_for_model(Character),
            object_id=character_id)
        si.save()
        return HttpResponseRedirect("/~%s" % request.user.username)
    else:
        return render(request, 'characters/character/delete.html',
                      {'character': character})
Example #8
0
def create_description(request):
    form = DescriptionForm()
    if (request.method == "POST"):
        form = DescriptionForm(request.POST)
        if (form.is_valid()):
            description = form.save(commit=False)
            if (request.user != description.morph.user):
                # TODO flag user
                messages.add_message(
                    request, messages.ERROR,
                    '<div class="error">You may only create descriptions for '
                    'your morphs!</div>')
                return render(request, "permission_denied.html", {})
            description.user = request.user
            description.save()
            form.save_m2m()
            si = StreamItem(
                action_type='C',
                user=request.user,
                content_type=ContentType.objects.get_for_model(Description),
                object_id=description.id)
            si.save()
            si = StreamItem(
                action_type='DA',
                user=request.user,
                content_type=ContentType.objects.get_for_model(Morph),
                object_id=description.morph.id)
            si.save()
            return HttpResponseRedirect(description.get_absolute_url())
    return render(request, "characters/description/edit.html", {'form': form})
Example #9
0
def delete_description(request, description_id):
    description = get_object_or_404(Description, id=description_id)
    if (request.user != description.user):
        # TODO flag user
        messages.add_message(
            request, messages.ERROR,
            '<div class="error">You may only delete descriptions that belong '
            'to you!</div>')
        return render(request, "permission_denied.html", {})
    if (request.method == "POST"
            and request.POST.get("confirm", None) is not None):
        morph = description.morph
        description.delete()
        si = StreamItem(
            action_type='D',
            user=request.user,
            content_type=ContentType.objects.get_for_model(Description),
            object_id=description_id)
        si.save()
        si = StreamItem(action_type='DD',
                        user=request.user,
                        content_type=ContentType.objects.get_for_model(Morph),
                        object_id=morph.id)
        si.save()
        return HttpResponseRedirect(morph.get_absolute_url())
    return render(request, "characters/description/delete.html",
                  {'description': description})
Example #10
0
def create_morph(request):
    form = MorphForm()
    if (request.method == "POST"):
        form = MorphForm(request.POST)
        if (form.is_valid()):
            morph = form.save(commit=False)
            if (request.user != morph.character.user):
                # TODO flag user
                messages.add_message(
                    request, messages.ERROR,
                    '<div class="error">You may only create morphs for your '
                    'characters!</div>')
                return render(request, "permission_denied.html", {})
            morph.user = request.user
            morph.save()
            form.save_m2m()
            si = StreamItem(
                action_type='C',
                user=request.user,
                content_type=ContentType.objects.get_for_model(Morph),
                object_id=morph.id)
            si.save()
            si = StreamItem(
                action_type='MA',
                user=request.user,
                content_type=ContentType.objects.get_for_model(Character),
                object_id=morph.character.id)
            si.save()
            ajax_list_species(request)
            ajax_list_genders(request)
            return HttpResponseRedirect(morph.get_absolute_url())
    return render(request, 'characters/morph/edit.html', {
        'form': form,
        'species_category': _species_select_dropdown()
    })
Example #11
0
def delete_morph(request, morph_id):
    morph = Morph.objects.get(id=morph_id)
    if (request.user != morph.user):
        # TODO flag user
        messages.add_message(
            request, messages.ERROR,
            '<div class="error">You may only delete a morph that belongs to '
            'you!</div>')
        return render(request, "permission_denied.html", {})
    if (request.method == "POST"
            and request.POST.get("confirm", None) is not None):
        character = morph.character
        for description in morph.description_set.all():
            description.delete()
        morph.delete()
        si = StreamItem(action_type='D',
                        user=request.user,
                        content_type=ContentType.objects.get_for_model(Morph),
                        object_id=morph_id)
        si.save()
        si = StreamItem(
            action_type='MD',
            user=request.user,
            content_type=ContentType.objects.get_for_model(Character),
            object_id=character.id)
        si.save()
        ajax_list_species(request)
        ajax_list_genders(request)
        return HttpResponseRedirect(character.get_absolute_url())
    else:
        return render(request, 'characters/morph/delete.html',
                      {'morph': morph})
Example #12
0
def edit_description(request, description_id):
    description = get_object_or_404(Description, id=description_id)
    form = DescriptionForm(instance=description)
    if (request.method == "POST"):
        form = DescriptionForm(request.POST, instance=description)
        if (form.is_valid()):
            form.save()
            si = StreamItem(
                action_type='U',
                user=request.user,
                content_type=ContentType.objects.get_for_model(Description),
                object_id=description_id)
            si.save()
            return HttpResponseRedirect(description.get_absolute_url())
    return render(request, 'characters/description/edit.html', {'form': form})
Example #13
0
def edit_description(request, description_id):
    description = get_object_or_404(Description, id=description_id)
    form = DescriptionForm(instance=description)
    if (request.method == "POST"):
        form = DescriptionForm(request.POST, instance=description)
        if (form.is_valid()):
            form.save()
            si = StreamItem(
                action_type='U',
                user=request.user,
                content_type=ContentType.objects.get_for_model(Description),
                object_id=description_id)
            si.save()
            return HttpResponseRedirect(description.get_absolute_url())
    return render(request, 'characters/description/edit.html', {'form': form})
Example #14
0
def detach_character_from_location(request, characterlocation_id):
    cl = get_object_or_404(CharacterLocation, id=characterlocation_id)
    if (request.user != cl.character.user):
        messages.add_message(
            request, messages.ERROR,
            '<div class="error">You may only detach your own '
            'characters!</div>')
        # TODO flag user
        return render(request, 'permission_denied.html', {})
    location = cl.location
    cl.delete()
    si = StreamItem(action_type='LD',
                    user=request.user,
                    content_type=ContentType.objects.get_for_model(Location),
                    object_id=location.id)
    si.save()
    return HttpResponseRedirect(location.get_absolute_url())
Example #15
0
def create_location(request):
    form = LocationForm()
    if (request.method == "POST"):
        form = LocationForm(request.POST)
        if (form.is_valid()):
            location = form.save(commit=False)
            location.user = request.user
            location.save()
            form.save_m2m()
            si = StreamItem(
                action_type='C',
                user=request.user,
                content_type=ContentType.objects.get_for_model(Location),
                object_id=location.id)
            si.save()
            return HttpResponseRedirect(location.get_absolute_url())
    return render(request, "characters/location/edit.html", {'form': form})
Example #16
0
def create_location(request):
    form = LocationForm()
    if (request.method == "POST"):
        form = LocationForm(request.POST)
        if (form.is_valid()):
            location = form.save(commit=False)
            location.user = request.user
            location.save()
            form.save_m2m()
            si = StreamItem(
                action_type='C',
                user=request.user,
                content_type=ContentType.objects.get_for_model(Location),
                object_id=location.id)
            si.save()
            return HttpResponseRedirect(location.get_absolute_url())
    return render(request, "characters/location/edit.html", {'form': form})
Example #17
0
def edit_character(request, character_id):
    c = get_object_or_404(Character, id=character_id)
    if (request.method == "POST"):
        if (request.POST.get('name', None) is not None):
            c.name = request.POST['name']
            c.save()
            si = StreamItem(
                action_type='U',
                user=request.user,
                content_type=ContentType.objects.get_for_model(Character),
                object_id=character_id)
            si.save()
            return HttpResponseRedirect(c.get_absolute_url())
        else:
            messages.add_message(
                request, messages.ERROR,
                '<div class="error">You must enter a name!</div>')
    return render(request, 'characters/character/edit.html', {'character': c})
Example #18
0
def edit_character(request, character_id):
    c = get_object_or_404(Character, id=character_id)
    if (request.method == "POST"):
        if (request.POST.get('name', None) is not None):
            c.name = request.POST['name']
            c.save()
            si = StreamItem(
                action_type='U',
                user=request.user,
                content_type=ContentType.objects.get_for_model(Character),
                object_id=character_id)
            si.save()
            return HttpResponseRedirect(c.get_absolute_url())
        else:
            messages.add_message(
                request, messages.ERROR,
                '<div class="error">You must enter a name!</div>')
    return render(request, 'characters/character/edit.html', {'character': c})
Example #19
0
def detach_character_from_location(request, characterlocation_id):
    cl = get_object_or_404(CharacterLocation, id=characterlocation_id)
    if (request.user != cl.character.user):
        messages.add_message(
            request, messages.ERROR,
            '<div class="error">You may only detach your own '
            'characters!</div>')
        # TODO flag user
        return render(request, 'permission_denied.html', {})
    location = cl.location
    cl.delete()
    si = StreamItem(
        action_type='LD',
        user=request.user,
        content_type=ContentType.objects.get_for_model(Location),
        object_id=location.id)
    si.save()
    return HttpResponseRedirect(location.get_absolute_url())
Example #20
0
def delete_location(request, location_id):
    location = get_object_or_404(Location, id=location_id)
    if (request.user != location.user):
        # TODO flag user
        messages.add_message(
            request, messages.ERROR,
            '<div class="error">You may only delete locations that you are '
            'the owner of!</div>')
        return render(request, "permission_denied.html", {})
    if (request.method == "POST"):
        location.delete()
        si = StreamItem(
            action_type='D',
            user=request.user,
            content_type=ContentType.objects.get_for_model(Location),
            object_id=location_id)
        si.save()
        return HttpResponseRedirect('/')
    return render(request, "characters/location/delete,html", {})
Example #21
0
def delete_location(request, location_id):
    location = get_object_or_404(Location, id=location_id)
    if (request.user != location.user):
        # TODO flag user
        messages.add_message(
            request, messages.ERROR,
            '<div class="error">You may only delete locations that you are '
            'the owner of!</div>')
        return render(request, "permission_denied.html", {})
    if (request.method == "POST"):
        location.delete()
        si = StreamItem(
            action_type='D',
            user=request.user,
            content_type=ContentType.objects.get_for_model(Location),
            object_id=location_id)
        si.save()
        return HttpResponseRedirect('/')
    return render(request, "characters/location/delete,html", {})
Example #22
0
def edit_user(request, username):
    if (request.user.username != username):
        messages.add_message(
            request, messages.ERROR,
            '<div class="error">You may only edit yourself!</div>')
        return render(request, 'permission_denied.html', {})
    form = UserForm(instance=request.user)
    if (request.method == 'POST'):
        form = UserForm(request.POST, instance=request.user)
        if (form.is_valid()):
            form.save()
            si = StreamItem(
                action_type='U',
                user=request.user,
                content_type=ContentType.objects.get_for_model(User),
                object_id=request.user.id)
            si.save()
            return HttpResponseRedirect("/~%s" % request.user.username)
    return render(request, "characters/user/edit.html",
                  {'form': form, 'user_object': request.user})
Example #23
0
def delete_image(request, image_id):
    image = get_object_or_404(Image, id=image_id)
    if request.user != image.user:
        messages.add_message(
            request, messages.ERROR, '<div class="error">You may only delete images that belong to ' "you!</div>"
        )
        return render(request, "permission_denied.html", {})
    if request.method == "POST" and request.POST.get("confirm", None) is not None:
        for ia in image.attachments.all():
            ia.delete()
        image.delete()
        si = StreamItem(
            action_type="D",
            user=request.user,
            content_type=ContentType.objects.get_for_model(Image),
            object_id=image_id,
        )
        si.save()
        messages.add_message(request, messages.SUCCESS, '<div class="success">Image deleted</div>')
        return HttpResponseRedirect("/~%s" % request.user.username)
    return render(request, "gallery/image/delete.html", {"image": image})
Example #24
0
def create_image(request):
    form = ImageForm()
    if (request.method == "POST"):
        form = ImageForm(request.POST, request.FILES)
        if (form.is_valid()):
            image = form.save(commit=False)
            image.user = request.user
            image.save()
            form.save_m2m()
            si = StreamItem(
                action_type='C',
                user=request.user,
                content_type=ContentType.objects.get_for_model(Image),
                object_id=image.id)
            si.save()
            messages.add_message(
                request, messages.SUCCESS,
                '<div class="success">Image created - <a '
                'href="/image/create/">Add another!</a></div>')
            return HttpResponseRedirect(image.get_absolute_url())
    return render(request, 'gallery/image/edit.html', {'form': form})
Example #25
0
def register(request):
    if request.method == 'POST':
        if request.POST.get('username', None) and request.POST.get(
                'password', None) and request.POST.get('email', None):
            user = User.objects.create_user(request.POST['username'],
                                            request.POST['email'], None)
            user.set_password(request.POST['password'])
            user.save()
            user = User.objects.get(username=request.POST['username'])
            si = StreamItem(
                action_type='C',
                user=user,
                content_type=ContentType.objects.get_for_model(User),
                object_id=user.id)
            si.save()
            return HttpResponseRedirect("/~%s" % user.username)
        else:
            messages.add_message(
                request, messages.WARNING,
                '<div class="failure">Oops!  All fields required!</div>')
    return render(request, "registration/create_user.html", {})
Example #26
0
def create_description(request):
    form = DescriptionForm()
    if (request.method == "POST"):
        form = DescriptionForm(request.POST)
        if (form.is_valid()):
            description = form.save(commit=False)
            if (request.user != description.morph.user):
                # TODO flag user
                messages.add_message(
                    request, messages.ERROR,
                    '<div class="error">You may only create descriptions for '
                    'your morphs!</div>')
                return render(request, "permission_denied.html", {})
            description.user = request.user
            description.save()
            form.save_m2m()
            si = StreamItem(
                action_type='C',
                user=request.user,
                content_type=ContentType.objects.get_for_model(Description),
                object_id=description.id)
            si.save()
            si = StreamItem(
                action_type='DA',
                user=request.user,
                content_type=ContentType.objects.get_for_model(Morph),
                object_id=description.morph.id)
            si.save()
            return HttpResponseRedirect(description.get_absolute_url())
    return render(request, "characters/description/edit.html", {'form': form})
Example #27
0
def delete_description(request, description_id):
    description = get_object_or_404(Description, id=description_id)
    if (request.user != description.user):
        # TODO flag user
        messages.add_message(
            request, messages.ERROR,
            '<div class="error">You may only delete descriptions that belong '
            'to you!</div>')
        return render(request, "permission_denied.html", {})
    if (request.method == "POST" and
            request.POST.get("confirm", None) is not None):
        morph = description.morph
        description.delete()
        si = StreamItem(
            action_type='D',
            user=request.user,
            content_type=ContentType.objects.get_for_model(Description),
            object_id=description_id)
        si.save()
        si = StreamItem(
            action_type='DD',
            user=request.user,
            content_type=ContentType.objects.get_for_model(Morph),
            object_id=morph.id)
        si.save()
        return HttpResponseRedirect(morph.get_absolute_url())
    return render(
        request, "characters/description/delete.html",
        {'description': description})
Example #28
0
def create_morph(request):
    form = MorphForm()
    if (request.method == "POST"):
        form = MorphForm(request.POST)
        if (form.is_valid()):
            morph = form.save(commit=False)
            if (request.user != morph.character.user):
                # TODO flag user
                messages.add_message(
                    request, messages.ERROR,
                    '<div class="error">You may only create morphs for your '
                    'characters!</div>')
                return render(request, "permission_denied.html", {})
            morph.user = request.user
            morph.save()
            form.save_m2m()
            si = StreamItem(
                action_type='C',
                user=request.user,
                content_type=ContentType.objects.get_for_model(Morph),
                object_id=morph.id)
            si.save()
            si = StreamItem(
                action_type='MA',
                user=request.user,
                content_type=ContentType.objects.get_for_model(Character),
                object_id=morph.character.id)
            si.save()
            ajax_list_species(request)
            ajax_list_genders(request)
            return HttpResponseRedirect(morph.get_absolute_url())
    return render(
        request, 'characters/morph/edit.html',
        {'form': form, 'species_category': _species_select_dropdown()})
Example #29
0
def delete_morph(request, morph_id):
    morph = Morph.objects.get(id=morph_id)
    if (request.user != morph.user):
        # TODO flag user
        messages.add_message(
            request, messages.ERROR,
            '<div class="error">You may only delete a morph that belongs to '
            'you!</div>')
        return render(request, "permission_denied.html", {})
    if (request.method == "POST" and
            request.POST.get("confirm", None) is not None):
        character = morph.character
        for description in morph.description_set.all():
            description.delete()
        morph.delete()
        si = StreamItem(
            action_type='D',
            user=request.user,
            content_type=ContentType.objects.get_for_model(Morph),
            object_id=morph_id)
        si.save()
        si = StreamItem(
            action_type='MD',
            user=request.user,
            content_type=ContentType.objects.get_for_model(Character),
            object_id=character.id)
        si.save()
        ajax_list_species(request)
        ajax_list_genders(request)
        return HttpResponseRedirect(character.get_absolute_url())
    else:
        return render(request,
                      'characters/morph/delete.html',
                      {'morph': morph})
Example #30
0
def edit_image(request, image_id):
    image = get_object_or_404(Image, id=image_id)
    form = ImageForm(instance=image)
    if request.user != image.user:
        messages.add_message(
            request, messages.ERROR, '<div class="error">You may only edit images that belong to ' "you!</div>"
        )
        return render(request, "permission_denied.html", {})
    if request.method == "POST":
        form = ImageForm(request.POST, request.FILES, instance=image)
        if form.is_valid():
            form.save()
            si = StreamItem(
                action_type="U",
                user=request.user,
                content_type=ContentType.objects.get_for_model(Image),
                object_id=image_id,
            )
            si.save()
            messages.add_message(request, messages.SUCCESS, '<div class="success">Image updated</div>')
            return HttpResponseRedirect(image.get_absolute_url())
    return render(request, "gallery/image/edit.html", {"form": form})
Example #31
0
def edit_location(request, location_id):
    location = get_object_or_404(Location, id=location_id)
    if (request.user != location.user):
        # TODO flag user
        messages.add_message(
            request, messages.ERROR,
            '<div class="error">You may only edit locations that you are the '
            'owner of!</div>')
        return render(request, "permission_denied.html", {})
    form = LocationForm(instance=location)
    if (request.method == "POST"):
        form = LocationForm(request.POST, instance=location)
        if (form.is_valid()):
            form.save()
            si = StreamItem(
                action_type='U',
                user=request.user,
                content_type=ContentType.objects.get_for_model(Location),
                object_id=location_id)
            si.save()
            return HttpResponseRedirect(location.get_absolute_url())
    return render(request, 'characters/location/edit.html', {'form': form})
Example #32
0
def edit_location(request, location_id):
    location = get_object_or_404(Location, id=location_id)
    if (request.user != location.user):
        # TODO flag user
        messages.add_message(
            request, messages.ERROR,
            '<div class="error">You may only edit locations that you are the '
            'owner of!</div>')
        return render(request, "permission_denied.html", {})
    form = LocationForm(instance=location)
    if (request.method == "POST"):
        form = LocationForm(request.POST, instance=location)
        if (form.is_valid()):
            form.save()
            si = StreamItem(
                action_type='U',
                user=request.user,
                content_type=ContentType.objects.get_for_model(Location),
                object_id=location_id)
            si.save()
            return HttpResponseRedirect(location.get_absolute_url())
    return render(request, 'characters/location/edit.html', {'form': form})
Example #33
0
def edit_user(request, username):
    if (request.user.username != username):
        messages.add_message(
            request, messages.ERROR,
            '<div class="error">You may only edit yourself!</div>')
        return render(request, 'permission_denied.html', {})
    form = UserForm(instance=request.user)
    if (request.method == 'POST'):
        form = UserForm(request.POST, instance=request.user)
        if (form.is_valid()):
            form.save()
            si = StreamItem(
                action_type='U',
                user=request.user,
                content_type=ContentType.objects.get_for_model(User),
                object_id=request.user.id)
            si.save()
            return HttpResponseRedirect("/~%s" % request.user.username)
    return render(request, "characters/user/edit.html", {
        'form': form,
        'user_object': request.user
    })
Example #34
0
def delete_image(request, image_id):
    image = get_object_or_404(Image, id=image_id)
    if (request.user != image.user):
        messages.add_message(
            request, messages.ERROR,
            '<div class="error">You may only delete images that belong to '
            'you!</div>')
        return render(request, 'permission_denied.html', {})
    if (request.method == "POST"
            and request.POST.get('confirm', None) is not None):
        for ia in image.attachments.all():
            ia.delete()
        image.delete()
        si = StreamItem(action_type='D',
                        user=request.user,
                        content_type=ContentType.objects.get_for_model(Image),
                        object_id=image_id)
        si.save()
        messages.add_message(request, messages.SUCCESS,
                             '<div class="success">Image deleted</div>')
        return HttpResponseRedirect('/~%s' % request.user.username)
    return render(request, 'gallery/image/delete.html', {'image': image})
Example #35
0
def edit_image(request, image_id):
    image = get_object_or_404(Image, id=image_id)
    form = ImageForm(instance=image)
    if (request.user != image.user):
        messages.add_message(
            request, messages.ERROR,
            '<div class="error">You may only edit images that belong to '
            'you!</div>')
        return render(request, 'permission_denied.html', {})
    if (request.method == "POST"):
        form = ImageForm(request.POST, request.FILES, instance=image)
        if (form.is_valid()):
            form.save()
            si = StreamItem(
                action_type='U',
                user=request.user,
                content_type=ContentType.objects.get_for_model(Image),
                object_id=image_id)
            si.save()
            messages.add_message(request, messages.SUCCESS,
                                 '<div class="success">Image updated</div>')
            return HttpResponseRedirect(image.get_absolute_url())
    return render(request, 'gallery/image/edit.html', {'form': form})
Example #36
0
def create_image(request):
    form = ImageForm()
    if request.method == "POST":
        form = ImageForm(request.POST, request.FILES)
        if form.is_valid():
            image = form.save(commit=False)
            image.user = request.user
            image.save()
            form.save_m2m()
            si = StreamItem(
                action_type="C",
                user=request.user,
                content_type=ContentType.objects.get_for_model(Image),
                object_id=image.id,
            )
            si.save()
            messages.add_message(
                request,
                messages.SUCCESS,
                '<div class="success">Image created - <a ' 'href="/image/create/">Add another!</a></div>',
            )
            return HttpResponseRedirect(image.get_absolute_url())
    return render(request, "gallery/image/edit.html", {"form": form})