def _handle_user_avatar_upload(): u"""Handle image upload for user profile page.""" gallery_form = UserGalleryForm(request.POST, request.FILES) if gallery_form.is_valid(): userprofile.clean_images() gallery = gallery_form.save(commit=False) gallery.userprofile = userprofile # User can only change his avatar gallery.is_avatar = True gallery.save() messages.success(request, u"Dodano grafikę") else: errors = '<br />'.join(gallery_form.errors) messages.error( request, u"Problem w trakcie dodawania grafiki: {}".format(errors))
def _handle_user_avatar_upload(): u"""Handle image upload for user profile page.""" gallery_form = UserGalleryForm(request.POST, request.FILES) if gallery_form.is_valid(): userprofile.clean_images() gallery = gallery_form.save(commit=False) gallery.userprofile = userprofile # User can only change his avatar gallery.is_avatar = True gallery.save() messages.success(request, u"Dodano grafikę") else: errors = '<br />'.join(gallery_form.errors) messages.error( request, u"Problem w trakcie dodawania grafiki: {}".format(errors) )
def logged_user_profile(request): """View to display user profile page. :param request: WSGIRequest instance """ def _init_edit_profile_form(): """Initialize EditProfileForm - helper method.""" return EditProfileForm( initial={ 'phone_no': request.user.userprofile.phone_no, 'first_name': request.user.first_name, 'last_name': request.user.last_name, 'user': request.user.id, }) def _populate_participated_offers(request): """Populate offers that current user participate.""" return Offer.objects.filter(volunteers=request.user) def _populate_created_offers(request): """Populate offers that current user create.""" return Offer.objects.filter( organization__userprofiles__user=request.user) def _is_saving_user_avatar(): """.""" return request.POST.get('submit') == 'save_image' and request.FILES def _is_saving_organization_image(): """.""" submit_value = request.POST.get('submit') return submit_value == 'save_organization_image' and request.FILES def _is_saving_profile(): """.""" return request.POST.get('submit') == 'save_profile' def _save_userprofile(): """Save user profile.""" form = EditProfileForm(request.POST) if form.is_valid(): user = User.objects.get(id=request.user.id) if (form.cleaned_data['current_password'] and form.cleaned_data['new_password'] and form.cleaned_data['confirm_new_password']): user.set_password(form.cleaned_data['new_password']) user.userprofile.phone_no = form.cleaned_data['phone_no'] user.first_name = form.cleaned_data['first_name'] user.last_name = form.cleaned_data['last_name'] user.userprofile.save() user.save() messages.success(request, 'Zaktualizowano profil') else: errors = '<br />'.join(form.errors) messages.error( request, 'Problem w trakcie zapisywania profilu: {errors}'.format( errors=errors)) return form def _handle_user_avatar_upload(): """Handle image upload for user profile page.""" gallery_form = UserGalleryForm(request.POST, request.FILES) if gallery_form.is_valid(): userprofile.clean_images() gallery = gallery_form.save(commit=False) gallery.userprofile = userprofile # User can only change his avatar gallery.is_avatar = True gallery.save() messages.success(request, 'Dodano grafikę') else: errors = '<br />'.join(gallery_form.errors) messages.error( request, 'Problem w trakcie dodawania grafiki: {errors}'.format( errors=errors)) def _handle_organization_image_upload(): """Handle image upload for user profile page.""" def _is_main(form): """Return True if is_main image was selected.""" return True if form.cleaned_data['is_main'] else False gallery_form = OrganizationGalleryForm(userprofile, request.POST, request.FILES) if gallery_form.is_valid(): gallery = gallery_form.save(commit=False) gallery.published_by = userprofile if _is_main(gallery_form): gallery.set_as_main(gallery.organization) gallery.save() messages.success(request, 'Dodano zdjęcie do galerii.') else: errors = '<br />'.join(gallery_form.errors) messages.error( request, 'Problem w trakcie dodawania grafiki: {errors}'.format( errors=errors)) profile_form = _init_edit_profile_form() userprofile = UserProfile.objects.get(user=request.user) galleries = OrganizationGallery.get_organizations_galleries(userprofile) if request.method == 'POST': if _is_saving_user_avatar(): _handle_user_avatar_upload() elif _is_saving_organization_image(): _handle_organization_image_upload() return redirect('logged_user_profile') elif _is_saving_profile(): profile_form = _save_userprofile() ctx = dict(profile_form=profile_form, user_avatar_form=UserGalleryForm(), organization_image_form=OrganizationGalleryForm(userprofile), galleries=galleries, userprofile=userprofile, MEDIA_URL=settings.MEDIA_URL) ctx['participated_offers'] = _populate_participated_offers(request) ctx['created_offers'] = _populate_created_offers(request) return render(request, 'users/user_profile.html', ctx)