Changeset 404:96b0ab786888
- Timestamp:
- Mar 5, 2012 3:51:00 AM (16 months ago)
- Branch:
- default
- Location:
- djangobb_forum
- Files:
-
- 5 edited
-
forms.py (modified) (7 diffs)
-
templates/djangobb_forum/profile/profile_menu.html (modified) (1 diff)
-
templates/djangobb_forum/profile/profile_personality.html (modified) (1 diff)
-
urls.py (modified) (2 diffs)
-
views.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
djangobb_forum/forms.py
r392 r404 161 161 162 162 def __init__(self, *args, **kwargs): 163 self.user_view = kwargs.pop('user_view', None) 164 self.user_request = kwargs.pop('user_request', None) 163 extra_args = kwargs.pop('extra_args', {}) 164 self.user_view = extra_args.pop('user_view', None) 165 self.user_request = extra_args.pop('user_request', None) 165 166 self.profile = kwargs['instance'] 166 167 super(EssentialsProfileForm, self).__init__(*args, **kwargs) … … 191 192 192 193 def __init__(self, *args, **kwargs): 193 self.user = kwargs.pop('user', None) 194 extra_args = kwargs.pop('extra_args', {}) 195 self.user = extra_args.pop('user_view', None) 194 196 self.profile = kwargs['instance'] 195 197 super(PersonalProfileForm, self).__init__(*args, **kwargs) … … 218 220 fields = ['jabber', 'icq', 'msn', 'aim', 'yahoo'] 219 221 222 def __init__(self, *args, **kwargs): 223 extra_args = kwargs.pop('extra_args', {}) 224 super(MessagingProfileForm, self).__init__(*args, **kwargs) 225 220 226 221 227 class PersonalityProfileForm(forms.ModelForm): … … 225 231 226 232 def __init__(self, *args, **kwargs): 227 self.markup = kwargs.pop('markup', None) 233 extra_args = kwargs.pop('extra_args', {}) 234 self.markup = extra_args.pop('markup', None) 228 235 super(PersonalityProfileForm, self).__init__(*args, **kwargs) 229 236 self.fields['signature'].widget = forms.Textarea(attrs={'class':'markup', 'rows':'10', 'cols':'75'}) … … 242 249 fields = ['theme', 'markup', 'show_smilies'] 243 250 251 def __init__(self, *args, **kwargs): 252 extra_args = kwargs.pop('extra_args', {}) 253 super(DisplayProfileForm, self).__init__(*args, **kwargs) 254 244 255 245 256 class PrivacyProfileForm(forms.ModelForm): … … 249 260 250 261 def __init__(self, *args, **kwargs): 262 extra_args = kwargs.pop('extra_args', {}) 251 263 super(PrivacyProfileForm, self).__init__(*args, **kwargs) 252 264 self.fields['privacy_permission'].widget = forms.RadioSelect( … … 259 271 model = Profile 260 272 fields = ['avatar'] 273 274 def __init__(self, *args, **kwargs): 275 extra_args = kwargs.pop('extra_args', {}) 276 super(UploadAvatarForm, self).__init__(*args, **kwargs) 261 277 262 278 -
djangobb_forum/templates/djangobb_forum/profile/profile_menu.html
r371 r404 5 5 <div class="inbox"> 6 6 <ul> 7 <li {%if active_menu == "essentials" %}class="isactive"{% endif %}><a href="{% url djangobb:forum_profile profile %}?section=essentials">{% trans "Essentials" %}</a></li>8 <li {%if active_menu == "personal" %}class="isactive"{% endif %}><a href="{% url djangobb:forum_profile profile %}?section=personal">{% trans "Personal" %}</a></li>9 <li {%if active_menu == "messaging" %}class="isactive"{% endif %}><a href="{% url djangobb:forum_profile profile %}?section=messaging">{% trans "Messaging" %}</a></li>10 <li {%if active_menu == "personality" %}class="isactive"{% endif %}><a href="{% url djangobb:forum_profile profile %}?section=personality">{% trans "Personality" %}</a></li>11 <li {%if active_menu == "display" %}class="isactive"{% endif %}><a href="{% url djangobb:forum_profile profile %}?section=display">{% trans "Display" %}</a></li>12 <li {%if active_menu == "privacy" %}class="isactive"{% endif %}><a href="{% url djangobb:forum_profile profile %}?section=privacy">{% trans "Privacy" %}</a></li>7 <li {%if active_menu == "essentials" %}class="isactive"{% endif %}><a href="{% url djangobb:forum_profile_essentials profile %}">{% trans "Essentials" %}</a></li> 8 <li {%if active_menu == "personal" %}class="isactive"{% endif %}><a href="{% url djangobb:forum_profile_personal profile %}">{% trans "Personal" %}</a></li> 9 <li {%if active_menu == "messaging" %}class="isactive"{% endif %}><a href="{% url djangobb:forum_profile_messaging profile %}">{% trans "Messaging" %}</a></li> 10 <li {%if active_menu == "personality" %}class="isactive"{% endif %}><a href="{% url djangobb:forum_profile_personality profile %}">{% trans "Personality" %}</a></li> 11 <li {%if active_menu == "display" %}class="isactive"{% endif %}><a href="{% url djangobb:forum_profile_display profile %}">{% trans "Display" %}</a></li> 12 <li {%if active_menu == "privacy" %}class="isactive"{% endif %}><a href="{% url djangobb:forum_profile_privacy profile %}">{% trans "Privacy" %}</a></li> 13 13 {# if request.user.is_superuser #} 14 14 <!--li {% if active_menu == "admin" %}class="isactive"{% endif %}><a href="{% url djangobb:forum_profile profile %}?section=admin">{% trans "Administration" %}</a></li--> -
djangobb_forum/templates/djangobb_forum/profile/profile_personality.html
r392 r404 25 25 </div> 26 26 {% if profile.forum_profile.avatar %} 27 <p class="clearb"><a href="{% url djangobb:forum_profile profile.username %}?action=upload_avatar">{% trans "Upload avatar" %}</a>28 <a href="{% url djangobb:forum_profile profile.username %}?action=delete_avatar">{% trans "Delete avatar" %}</a></p>27 <p class="clearb"><a href="{% url djangobb:forum_profile_upload_avatar profile.username %}">{% trans "Upload avatar" %}</a> 28 <a href="{% url djangobb:forum_profile_delete_avatar profile.username %}">{% trans "Delete avatar" %}</a></p> 29 29 {% else %} 30 <p class="clearb"><a href="{% url djangobb:forum_profile profile.username %}?action=upload_avatar">{% trans "Upload avatar" %}</a>30 <p class="clearb"><a href="{% url djangobb:forum_profile_upload_avatar profile.username %}">{% trans "Upload avatar" %}</a> 31 31 {% endif %} 32 32 </div> -
djangobb_forum/urls.py
r376 r404 5 5 from djangobb_forum.feeds import LastPosts, LastTopics, LastPostsOnForum,\ 6 6 LastPostsOnCategory, LastPostsOnTopic 7 from djangobb_forum.forms import EssentialsProfileForm,\ 8 PersonalProfileForm, MessagingProfileForm, PersonalityProfileForm,\ 9 DisplayProfileForm, PrivacyProfileForm, UploadAvatarForm 7 10 8 11 … … 17 20 18 21 # User 19 url('^user/(?P<username>.*)/$', forum_views.user, name='forum_profile'), 22 url('^user/(?P<username>.*)/delete_avatar/$', forum_views.user,{ 23 'action': 'delete_avatar' 24 }, name='forum_profile_delete_avatar'), 25 url('^user/(?P<username>.*)/upload_avatar/$', forum_views.user, { 26 'action': 'upload_avatar', 27 'form_class': UploadAvatarForm, 28 'template': 'djangobb_forum/upload_avatar.html' 29 }, name='forum_profile_upload_avatar'), 30 url('^user/(?P<username>.*)/privacy/$', forum_views.user, { 31 'section': 'privacy', 32 'form_class': PrivacyProfileForm, 33 'template': 'djangobb_forum/profile/profile_privacy.html' 34 }, name='forum_profile_privacy'), 35 url('^user/(?P<username>.*)/display/$', forum_views.user, { 36 'section': 'display', 37 'form_class': DisplayProfileForm, 38 'template': 'djangobb_forum/profile/profile_display.html' 39 }, name='forum_profile_display'), 40 url('^user/(?P<username>.*)/personality/$', forum_views.user, { 41 'section': 'personality', 42 'form_class': PersonalityProfileForm, 43 'template': 'djangobb_forum/profile/profile_personality.html' 44 }, name='forum_profile_personality'), 45 url('^user/(?P<username>.*)/messaging/$', forum_views.user, { 46 'section': 'messaging', 47 'form_class': MessagingProfileForm, 48 'template': 'djangobb_forum/profile/profile_messaging.html' 49 }, name='forum_profile_messaging'), 50 url('^user/(?P<username>.*)/personal/$', forum_views.user, { 51 'section': 'personal', 52 'form_class': PersonalProfileForm, 53 'template': 'djangobb_forum/profile/profile_personal.html' 54 }, name='forum_profile_personal'), 55 url('^user/(?P<username>.*)/essentials/$', forum_views.user, { 56 'section': 'essentials', 57 'form_class': EssentialsProfileForm, 58 'template': 'djangobb_forum/profile/profile_essentials.html' 59 }, name='forum_profile_essentials'), 60 url('^user/(?P<username>.*)/$', forum_views.user, { 61 'section': 'essentials', 62 'form_class': EssentialsProfileForm, 63 'template': 'djangobb_forum/profile/profile_essentials.html' 64 }, name='forum_profile'), 20 65 url('^users/$', forum_views.users, name='forum_users'), 21 66 -
djangobb_forum/views.py
r399 r404 335 335 336 336 @transaction.commit_on_success 337 def user(request, username ):337 def user(request, username, section=None, action=None, template=None, form_class=None): 338 338 user = get_object_or_404(User, username=username) 339 339 if request.user.is_authenticated() and user == request.user or request.user.is_superuser: 340 if 'section' in request.GET: 341 section = request.GET['section'] 342 profile_url = reverse('djangobb:forum_profile', args=[user.username]) + '?section=' + section 343 if section == 'privacy': 344 form = build_form(PrivacyProfileForm, request, instance=user.forum_profile) 345 if request.method == 'POST' and form.is_valid(): 346 form.save() 347 return HttpResponseRedirect(profile_url) 348 return render(request, 'djangobb_forum/profile/profile_privacy.html', {'active_menu':'privacy', 349 'profile': user, 350 'form': form, 351 }) 352 elif section == 'display': 353 form = build_form(DisplayProfileForm, request, instance=user.forum_profile) 354 if request.method == 'POST' and form.is_valid(): 355 form.save() 356 return HttpResponseRedirect(profile_url) 357 return render(request, 'djangobb_forum/profile/profile_display.html', {'active_menu':'display', 358 'profile': user, 359 'form': form, 360 }) 361 elif section == 'personality': 362 form = build_form(PersonalityProfileForm, request, markup=user.forum_profile.markup, instance=user.forum_profile) 363 if request.method == 'POST' and form.is_valid(): 364 form.save() 365 return HttpResponseRedirect(profile_url) 366 return render(request, 'djangobb_forum/profile/profile_personality.html', {'active_menu':'personality', 367 'profile': user, 368 'form': form, 340 if section: 341 profile_url = reverse('djangobb:forum_profile_%s' % section, args=[user.username]) 342 form = build_form(form_class, request, instance=user.forum_profile, 343 extra_args={ 344 'user_view': user, 345 'user_request': request.user, 346 'markup': user.forum_profile.markup, 369 347 }) 370 elif section == 'messaging': 371 form = build_form(MessagingProfileForm, request, instance=user.forum_profile) 372 if request.method == 'POST' and form.is_valid(): 373 form.save() 374 return HttpResponseRedirect(profile_url) 375 return render(request, 'djangobb_forum/profile/profile_messaging.html', {'active_menu':'messaging', 376 'profile': user, 377 'form': form, 378 }) 379 elif section == 'personal': 380 form = build_form(PersonalProfileForm, request, instance=user.forum_profile, user=user) 381 if request.method == 'POST' and form.is_valid(): 382 form.save() 383 return HttpResponseRedirect(profile_url) 384 return render(request, 'djangobb_forum/profile/profile_personal.html', {'active_menu':'personal', 385 'profile': user, 386 'form': form, 387 }) 388 elif section == 'essentials': 389 form = build_form(EssentialsProfileForm, request, instance=user.forum_profile, 390 user_view=user, user_request=request.user) 391 if request.method == 'POST' and form.is_valid(): 392 profile = form.save() 348 if request.method == 'POST' and form.is_valid(): 349 form.save() 350 #TODO any way to remove next two lines? 351 if section=='essentials': 393 352 set_language(request, profile.language) 394 return HttpResponseRedirect(profile_url) 395 396 return render(request, 'djangobb_forum/profile/profile_essentials.html', {'active_menu':'essentials', 397 'profile': user, 398 'form': form, 399 }) 400 401 elif 'action' in request.GET: 402 action = request.GET['action'] 353 return HttpResponseRedirect(profile_url) 354 return render(request, template, {'active_menu': section, 355 'profile': user, 356 'form': form, 357 }) 358 elif action: 403 359 if action == 'upload_avatar': 404 form = build_form( UploadAvatarForm, request, instance=user.forum_profile)360 form = build_form(form_class, request, instance=user.forum_profile) 405 361 if request.method == 'POST' and form.is_valid(): 406 362 form.save() 407 363 return HttpResponseRedirect(reverse('djangobb:forum_profile', args=[user.username])) 408 return render(request, 'djangobb_forum/upload_avatar.html', {'form': form,364 return render(request, template, {'form': form, 409 365 'avatar_width': forum_settings.AVATAR_WIDTH, 410 366 'avatar_height': forum_settings.AVATAR_HEIGHT, … … 415 371 profile.save() 416 372 return HttpResponseRedirect(reverse('djangobb:forum_profile', args=[user.username])) 417 418 else:419 form = build_form(EssentialsProfileForm, request, instance=user.forum_profile,420 user_view=user, user_request=request.user)421 if request.method == 'POST' and form.is_valid():422 profile = form.save()423 set_language(request, profile.language)424 return HttpResponseRedirect(reverse('djangobb:forum_profile', args=[user.username]))425 return render(request, 'djangobb_forum/profile/profile_essentials.html', {'active_menu':'essentials',426 'profile': user,427 'form': form,428 })429 raise Http404430 373 else: 431 374 topic_count = Topic.objects.filter(user__id=user.id).count() 432 375 if user.forum_profile.post_count < forum_settings.POST_USER_SEARCH and not request.user.is_authenticated(): 433 376 return HttpResponseRedirect(reverse('user_signin') + '?next=%s' % request.path) 434 return render(request, 'djangobb_forum/user.html', {'profile': user,377 return render(request, template, {'profile': user, 435 378 'topic_count': topic_count, 436 379 })
Note: See TracChangeset
for help on using the changeset viewer.
