17 from django.shortcuts import render_to_response |
17 from django.shortcuts import render_to_response |
18 from django.template import RequestContext |
18 from django.template import RequestContext |
19 from django.template.loader import render_to_string |
19 from django.template.loader import render_to_string |
20 from django.utils.translation import get_language, ugettext as _, ugettext_lazy |
20 from django.utils.translation import get_language, ugettext as _, ugettext_lazy |
21 from django.views.generic.list_detail import object_list |
21 from django.views.generic.list_detail import object_list |
|
22 from django.contrib.auth.models import User |
22 from cm.models import Text, TextVersion, Attachment, Comment, Configuration, Activity |
23 from cm.models import Text, TextVersion, Attachment, Comment, Configuration, Activity |
23 |
24 |
24 ACTIVITY_PAGINATION = 10 |
25 ACTIVITY_PAGINATION = 10 |
25 RECENT_TEXT_NB = 5 |
26 RECENT_TEXT_NB = 5 |
26 RECENT_COMMENT_NB = RECENT_TEXT_NB |
27 RECENT_COMMENT_NB = RECENT_TEXT_NB |
245 else: |
246 else: |
246 form = SettingsDesignForm() |
247 form = SettingsDesignForm() |
247 |
248 |
248 return render_to_response('site/settings_design.html', {'form' : form}, context_instance=RequestContext(request)) |
249 return render_to_response('site/settings_design.html', {'form' : form}, context_instance=RequestContext(request)) |
249 |
250 |
|
251 class ForgotPWForm(forms.Form): |
|
252 name_or_email = forms.CharField(label=ugettext_lazy("Username or email"), |
|
253 required=True, |
|
254 ) |
|
255 |
|
256 def forgot_pw(request): |
|
257 if request.method == 'POST': |
|
258 form = ForgotPWForm(data=request.POST) |
|
259 if form.is_valid() : |
|
260 name_or_email = form.cleaned_data.get("name_or_email") |
|
261 # try email |
|
262 user = None |
|
263 try: |
|
264 user = User.objects.get(email__iexact = name_or_email) |
|
265 except User.DoesNotExist: |
|
266 pass |
|
267 # try email |
|
268 try: |
|
269 user = User.objects.get(username__exact = name_or_email) |
|
270 except User.DoesNotExist: |
|
271 pass |
|
272 if user: |
|
273 message = render_to_string('email/forgot_pw.txt', |
|
274 { |
|
275 'reset_url' : reverse('reset-pw', args=[user.get_profile().adminkey]), |
|
276 'CONF': Configuration.objects |
|
277 }) |
|
278 |
|
279 send_mail(_(u'How to reset your password'), message, Configuration.objects['email_from'], [user.email]) |
|
280 |
|
281 display_message(request, _(u'A link to reset your password has been sent to the profile email. Please check your email.')) |
|
282 else: |
|
283 display_message(request, _(u'No user found.')) |
|
284 return HttpResponseRedirect(reverse('index')) |
|
285 else: |
|
286 form = ForgotPWForm() |
|
287 |
|
288 return render_to_response('site/forgot_pw.html', {'form' : form}, context_instance=RequestContext(request)) |
|
289 |
|
290 from django.contrib.auth.forms import SetPasswordForm |
|
291 |
|
292 def reset_pw(request, adminkey): |
|
293 try: |
|
294 profile = UserProfile.objects.get(adminkey=adminkey) |
|
295 if request.method == 'POST': |
|
296 form = SetPasswordForm(profile.user,data=request.POST) |
|
297 if form.is_valid(): |
|
298 form.save() |
|
299 display_message(request, _(u'Your password has been changed.')) |
|
300 return HttpResponseRedirect(reverse('index')) |
|
301 else: |
|
302 form = SetPasswordForm(profile.user) |
|
303 return render_to_response('site/reset_pw.html', {'form' : form}, context_instance=RequestContext(request)) |
|
304 except UserProfile.DoesNotExist: |
|
305 from django.http import Http404 |
|
306 |
250 def help(request): |
307 def help(request): |
251 return render_to_response('site/help.html', context_instance=RequestContext(request)) |
308 return render_to_response('site/help.html', context_instance=RequestContext(request)) |
252 |
309 |