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')
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)
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)