def user_set_userpic(request, id=None, **kwargs): """ Update userpic. """ template = kwargs.get("template", "user.html") user_message = request.session.pop("user_message", {}) # Retrieve user's profile from db. user = get_object_or_404(User, pk=int(id)) if request.method == "POST": form = UserpicForm(request.POST) if request.POST.get("submit_userpic", None): file_path = request.FILES.get("file_path", None) if file_path: try: user.profile.userpic = handle_image(file_path, MEDIA_ROOT, thumbnail_size=THUMBNAIL_SIZE) user.profile.save() return redirect(reverse("user_profile", args=(str(id),))) except Exception as e: user_message = update_user_message(user_message, _("Failed to update userpic."), "fail") else: user_message = update_user_message(user_message, _("Correct the errors: "), "fail") else: return redirect(reverse("user_profile", args=(str(id),))) elif request.method == "GET": form = UserpicForm() return render_to_response( template, {"user_message": user_message, "form": form, "page_title": _(u"Update userpic ") + user.get_full_name()}, context_instance=RequestContext(request), )
def add_authority(request, slug=None, **kwargs): """ Add new Authority in case if it can't be found in the database. """ user_message = request.session.pop('user_message', {}) template = kwargs.get('template', 'add_record.html') admin_mail_template = 'emails/authority_added.txt' from_link = None # Show the form to enter Authority data. if request.method == 'GET': from_link = request.GET.get('from', None) initial = {'slug': 'slug', 'order': 100} form = AuthorityProfileForm(initial=initial) # Check if the form is correct, save Authority in the db. elif request.method == 'POST': form = AuthorityProfileForm(request.POST) if form.is_valid(): data = form.cleaned_data authority = AuthorityProfile(**data) try: authority.save() except Exception as e: print >> sys.stderr, '[%s] %s' % (datetime.now().isoformat(), e) user_message = update_user_message({}, e.args[0], 'fail') form = AuthorityProfileForm(instance=authority) if authority.id: # Added successfully. user_message = update_user_message(user_message, AppMessage('AuthSavedInactive').message % authority.name, 'success') # Send notification to managers. subject = _(u'New authority in the db: ') + authority.name content = render_to_string(admin_mail_template, { 'authority': authority, 'user': request.user, 'domain': get_domain_name()}) try: send_mail_managers(subject, content, fail_silently=False, headers={'Reply-To': request.user.email}) except Exception as e: print >> sys.stderr, '[%s] %s' % (datetime.now().isoformat(), e) # Create notifier. item = TaggedItem.objects.create(name=authority.name, content_object=authority) evnt = EventNotification.objects.create( item=item, action='active', receiver=request.user, summary='Authority %s becomes active' % authority.name) request.session['user_message'] = user_message return redirect(reverse('display_authorities')) return render_to_response(template, {'form': form, 'from': from_link, 'mode': 'authority', 'user_message': user_message, 'page_title': _(u'Add authority')}, context_instance=RequestContext(request))
def user_profile_update(request, id=None, **kwargs): """ Show/process form for user's profile update. """ user_message = request.session.pop("user_message", {}) template = kwargs.get("template", "user.html") # Retrieve user's profile from db. user = get_object_or_404(User, pk=int(id)) try: user_profile, created = UserProfile.objects.get_or_create(user=user) except Exception as e: pass # TO-DO: Log it! if request.method == "POST": # Save changes. if request.POST.get("save_changes", None): form = UserProfileForm(request.POST, instance=user_profile) if form.is_valid(): try: user_profile = form.save() return redirect(reverse("user_profile", args=(str(id),))) except Exception as e: # Do nothing, simply return the form with errors user_message = update_user_message(user_message, _("Failed to update user profile."), "fail") else: user_message = update_user_message(user_message, _("Correct the errors: "), "fail") elif request.POST.get("cancel_changes", None): return redirect(reverse("user_profile", args=(str(id),))) elif request.method == "GET": form = UserProfileForm(instance=user_profile) return render_to_response( template, { "user_message": user_message, "user_profile": user_profile, "form": form, "page_title": _(u"Update profile ") + user_profile.user.get_full_name(), }, context_instance=RequestContext(request), )