1 from django
.http
import HttpResponse
, HttpResponseRedirect
2 from django
.contrib
.auth
.decorators
import login_required
3 from django
.contrib
.auth
.models
import User
4 from django
.core
import validators
5 from archweb_dev
.utils
import render_template
6 from archweb_dev
.packages
.models
import Package
7 from archweb_dev
.todolists
.models
import Todolist
, TodolistPkg
8 from archweb_dev
.settings
import DATA_DIR
9 from archweb_dev
.utils
import validate
10 from archweb_dev
.common
.models
import UserProfile
15 thismaint
= User
.objects
.get(username
=request
.user
.username
)
16 except User
.DoesNotExist
:
17 # weird, we don't have a maintainer record for this logged-in user
20 # get a list of incomplete package todo lists
21 todos
= Todolist
.objects
.get_incomplete()
22 # get flagged-package stats for all maintainers
23 stats
= Package
.objects
.get_flag_stats()
25 # get list of flagged packages for this maintainer
26 pkgs
= Package
.objects
.filter(maintainer
=thismaint
.id).filter(needupdate
=True).order_by('repo', 'pkgname')
30 return render_template('devel/index.html', request
,
31 {'stats':stats
, 'pkgs':pkgs
, 'todos':todos
, 'maint':thismaint
})
35 def change_notify(request
):
36 maint
= User
.objects
.get(username
=request
.user
.username
)
37 notify
= request
.POST
.get('notify', 'no')
39 maint
.get_profile().notify
= notify
== 'yes'
40 except UserProfile
.DoesNotExist
:
41 UserProfile(user_id
=maint
.id ,notify
=notify
== 'yes').save()
42 maint
.get_profile().save()
43 return HttpResponseRedirect('/devel/')
46 def change_profile(request
):
49 passwd1
, passwd2
= request
.POST
['passwd'], request
.POST
['passwd2']
50 email
= request
.POST
['email']
52 if passwd1
!= passwd2
:
53 errors
['password'] = [' Passwords do not match. ']
54 validate(errors
, 'Email', email
, validators
.isValidEmail
, False, request
)
57 request
.user
.email
= email
59 request
.user
.set_password(passwd1
)
61 return HttpResponseRedirect('/devel/')
62 return render_template('devel/profile.html', request
, {'errors':errors
,'email':request
.user
.email
})
66 return HttpResponse(file(DATA_DIR
+ '/pkgmaint_guide.txt').read(),
67 mimetype
='text/plain')