def save(self, commit=True): if self.cleaned_data: if self.request.user.is_superuser: self.profile.user.username = self.cleaned_data['username'] self.profile.user.email = self.cleaned_data['email'] self.profile.time_zone = self.cleaned_data['time_zone'] self.profile.language = self.cleaned_data['language'] self.profile.user.save() if commit: self.profile.save() set_language(self.request, self.profile.language) return self.profile
def user(request, username): user = get_object_or_404(User, username=username) if request.user.is_authenticated() and user == request.user or request.user.is_superuser: if 'section' in request.GET: section = request.GET['section'] profile_url = reverse('djangobb:forum_profile', args=[user.username]) + '?section=' + section if section == 'privacy': form = build_form(PrivacyProfileForm, request, instance=user.forum_profile) if request.method == 'POST' and form.is_valid(): form.save() return HttpResponseRedirect(profile_url) return {'active_menu':'privacy', 'profile': user, 'form': form, 'TEMPLATE': 'forum/profile/profile_privacy.html' } elif section == 'display': form = build_form(DisplayProfileForm, request, instance=user.forum_profile) if request.method == 'POST' and form.is_valid(): form.save() return HttpResponseRedirect(profile_url) return {'active_menu':'display', 'profile': user, 'form': form, 'TEMPLATE': 'forum/profile/profile_display.html' } elif section == 'personality': form = build_form(PersonalityProfileForm, request, markup=user.forum_profile.markup, instance=user.forum_profile) if request.method == 'POST' and form.is_valid(): form.save() return HttpResponseRedirect(profile_url) return {'active_menu':'personality', 'profile': user, 'form': form, 'TEMPLATE': 'forum/profile/profile_personality.html' } elif section == 'messaging': form = build_form(MessagingProfileForm, request, instance=user.forum_profile) if request.method == 'POST' and form.is_valid(): form.save() return HttpResponseRedirect(profile_url) return {'active_menu':'messaging', 'profile': user, 'form': form, 'TEMPLATE': 'forum/profile/profile_messaging.html' } elif section == 'personal': form = build_form(PersonalProfileForm, request, instance=user.forum_profile, user=user) if request.method == 'POST' and form.is_valid(): form.save() return HttpResponseRedirect(profile_url) return {'active_menu':'personal', 'profile': user, 'form': form, 'TEMPLATE': 'forum/profile/profile_personal.html' } elif section == 'essentials': form = build_form(EssentialsProfileForm, request, instance=user.forum_profile, user_view=user, user_request=request.user) if request.method == 'POST' and form.is_valid(): profile = form.save() set_language(request, profile.language) return HttpResponseRedirect(profile_url) return {'active_menu':'essentials', 'profile': user, 'form': form, 'TEMPLATE': 'forum/profile/profile_essentials.html' } elif 'action' in request.GET: action = request.GET['action'] if action == 'upload_avatar': form = build_form(UploadAvatarForm, request, instance=user.forum_profile) if request.method == 'POST' and form.is_valid(): form.save() return HttpResponseRedirect(reverse('djangobb:forum_profile', args=[user.username])) return {'form': form, 'avatar_width': forum_settings.AVATAR_WIDTH, 'avatar_height': forum_settings.AVATAR_HEIGHT, 'TEMPLATE': 'forum/upload_avatar.html' } elif action == 'delete_avatar': profile = get_object_or_404(Profile, user=request.user) profile.avatar = None profile.save() return HttpResponseRedirect(reverse('djangobb:forum_profile', args=[user.username])) else: form = build_form(EssentialsProfileForm, request, instance=user.forum_profile, user_view=user, user_request=request.user) if request.method == 'POST' and form.is_valid(): profile = form.save() set_language(request, profile.language) return HttpResponseRedirect(reverse('djangobb:forum_profile', args=[user.username])) return {'active_menu':'essentials', 'profile': user, 'form': form, 'TEMPLATE': 'forum/profile/profile_essentials.html' } else: topic_count = Topic.objects.filter(user__id=user.id).count() if user.forum_profile.post_count < forum_settings.POST_USER_SEARCH and not request.user.is_authenticated(): return HttpResponseRedirect(reverse('user_signin') + '?next=%s' % request.path) return {'profile': user, 'topic_count': topic_count, }