Ejemplo n.º 1
0
def save_profile(req):
    if req.method == 'POST':
        profile = get_user_profile(req.user)
        profile_form = ProfileForm(req.POST, instance=profile)
        license_form = LicenseForm(req.POST, instance=profile.default_license)
        
        if profile_form.is_valid() and license_form.is_valid():
            profile_form.save()
            license,created = License.objects.get_or_create(
                default_license=License.get_default(),
                allow_commercial_use=license_form.cleaned_data['allow_commercial_use'],
                allow_modifications=license_form.cleaned_data['allow_modifications'],
            )
            profile.default_license = license
            profile.save()

            messages.success(req, 'Profile successfully updated.')
        else:
            store_session_form(req.session, ProfileForm, req.POST)
            store_session_form(req.session, LicenseForm, req.POST)
            messages.error(req, 'Please fix the following errors:')
        return redirect('astrometry.net.views.user.dashboard_profile')
Ejemplo n.º 2
0
def save_profile(req):
    if req.method == 'POST':
        profile = get_user_profile(req.user)
        profile_form = ProfileForm(req.POST, instance=profile)
        license_form = LicenseForm(req.POST, instance=profile.default_license)
        
        if profile_form.is_valid() and license_form.is_valid():
            profile_form.save()
            license,created = License.objects.get_or_create(
                default_license=License.get_default(),
                allow_commercial_use=license_form.cleaned_data['allow_commercial_use'],
                allow_modifications=license_form.cleaned_data['allow_modifications'],
            )
            profile.default_license = license
            profile.save()

            messages.success(req, 'Profile successfully updated.')
        else:
            store_session_form(req.session, ProfileForm, req.POST)
            store_session_form(req.session, LicenseForm, req.POST)
            messages.error(req, 'Please fix the following errors:')
        return redirect('astrometry.net.views.user.dashboard_profile')
Ejemplo n.º 3
0
def edit(req, user_image_id=None):
    user_image = get_object_or_404(UserImage, pk=user_image_id)
    if user_image.user != req.user:
        messages.error(
            req, "Sorry, you don't have permission to edit this content.")
        return render(req, 'user_image/permission_denied.html')

    if req.method == 'POST':
        image_form = UserImageForm(req.user, req.POST, instance=user_image)
        license_form = LicenseForm(req.POST)
        if image_form.is_valid() and license_form.is_valid():
            image_form.save()

            license, created = License.objects.get_or_create(
                default_license=req.user.get_profile().default_license,
                allow_commercial_use=license_form.
                cleaned_data['allow_commercial_use'],
                allow_modifications=license_form.
                cleaned_data['allow_modifications'],
            )
            user_image.license = license

            album_id = image_form.cleaned_data['album']
            albums = Album.objects.filter(user=req.user).filter(
                user_images__in=[user_image])
            if album_id == '':
                # remove user_image from album
                for album in albums:
                    album.user_images.remove(user_image)
            else:
                try:
                    album = Album.objects.get(pk=int(album_id))
                    if album not in albums:
                        # move user_image to new album
                        for album in albums:
                            album.user_images.remove(user_image)
                        album.user_images.add(user_image)
                except Exception as e:
                    pass

            selected_flags = req.POST.getlist('flags')
            user_image.update_flags(selected_flags, req.user)
            user_image.save()

            messages.success(req, 'Image details successfully updated.')
            return redirect(user_image)
        else:
            messages.error(req, 'Please fix the following errors:')
    else:
        image_form = UserImageForm(req.user, instance=user_image)
        license_form = LicenseForm(instance=user_image.license)
        flags = Flag.objects.all()
        selected_flags = [
            flagged_ui.flag for flagged_ui in FlaggedUserImage.objects.filter(
                user_image=user_image,
                user=req.user,
            )
        ]

    context = {
        'image_form': image_form,
        'license_form': license_form,
        'flags': flags,
        'selected_flags': selected_flags,
        'image': user_image,
    }
    return render(req, 'user_image/edit.html', context)
Ejemplo n.º 4
0
def edit(req, user_image_id=None):
    user_image = get_object_or_404(UserImage, pk=user_image_id) 
    if user_image.user != req.user:
        messages.error(req, "Sorry, you don't have permission to edit this content.")
        return render(req, 'user_image/permission_denied.html')

    if req.method == 'POST':
        image_form = UserImageForm(req.user, req.POST, instance=user_image)
        license_form = LicenseForm(req.POST)
        if image_form.is_valid() and license_form.is_valid():
            image_form.save()

            pro = get_user_profile(req.user)
            license,created = License.objects.get_or_create(
                default_license=pro.default_license,
                allow_commercial_use=license_form.cleaned_data['allow_commercial_use'],
                allow_modifications=license_form.cleaned_data['allow_modifications'],
            )
            user_image.license = license
            
            album_id = image_form.cleaned_data['album']
            albums = Album.objects.filter(user=req.user).filter(user_images__in=[user_image])
            if album_id == '':
                # remove user_image from album
                for album in albums:
                    album.user_images.remove(user_image)
            else:
                try:
                    album = Album.objects.get(pk=int(album_id))
                    if album not in albums:
                        # move user_image to new album
                        for album in albums:
                            album.user_images.remove(user_image)
                        album.user_images.add(user_image)
                except Exception as e:
                    pass

            selected_flags = req.POST.getlist('flags')
            user_image.update_flags(selected_flags, req.user)
            user_image.save()

            messages.success(req, 'Image details successfully updated.')
            return redirect(user_image)
        else:
            messages.error(req, 'Please fix the following errors:')
    else:
        image_form = UserImageForm(req.user, instance=user_image)
        license_form = LicenseForm(instance=user_image.license)
        flags = Flag.objects.all()
        selected_flags = [flagged_ui.flag for flagged_ui in
            FlaggedUserImage.objects.filter(
                user_image=user_image,
                user=req.user,
            )
        ]
        
    context = {
        'image_form': image_form,
        'license_form': license_form,
        'flags': flags,
        'selected_flags':selected_flags,
        'image': user_image,
    }
    return render(req, 'user_image/edit.html', context)