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
.lib
.utils
import render_response
6 from archweb_dev
.packages
.models
import Package
, Repo
7 from archweb_dev
.todolists
.models
import Todolist
, TodolistPkg
8 from archweb_dev
.settings
import DATA_DIR
9 from archweb_dev
.lib
.utils
import validate
10 from archweb_dev
.devel
.models
import UserProfile
11 from archweb_dev
.news
.models
import News
12 from archweb_dev
.settings
import DATA_DIR
13 from archweb_dev
.devel
.models
import Donator
, Mirror
14 from django
.http
import HttpResponse
15 from django
.template
import Context
, loader
21 thismaint
= User
.objects
.get(username
=request
.user
.username
)
22 except User
.DoesNotExist
:
23 # weird, we don't have a maintainer record for this logged-in user
26 # get a list of incomplete package todo lists
27 todos
= Todolist
.objects
.get_incomplete()
28 # get flagged-package stats for all maintainers
29 stats
= Package
.objects
.get_flag_stats()
31 # get list of flagged packages for this maintainer
32 pkgs
= Package
.objects
.filter(maintainer
=thismaint
.id).filter(needupdate
=True).order_by('repo', 'pkgname')
37 for repo
in Repo
.objects
.all():
40 'count': Package
.objects
.filter(repo__exact
= repo
).count(),
41 'flagged': Package
.objects
.filter(repo__exact
= repo
).filter(needupdate
=True).count()
44 return render_response(request
, 'devel/index.html',
53 def change_notify(request
):
54 maint
= User
.objects
.get(username
=request
.user
.username
)
55 notify
= request
.POST
.get('notify', 'no')
57 maint
.get_profile().notify
= notify
== 'yes'
58 except UserProfile
.DoesNotExist
:
59 UserProfile(user_id
=maint
.id ,notify
=notify
== 'yes').save()
60 maint
.get_profile().save()
61 return HttpResponseRedirect('/devel/')
64 def change_profile(request
):
67 passwd1
, passwd2
= request
.POST
['passwd'], request
.POST
['passwd2']
68 email
= request
.POST
['email']
70 if passwd1
!= passwd2
:
71 errors
['password'] = [' Passwords do not match. ']
72 validate(errors
, 'Email', email
, validators
.isValidEmail
, False, request
)
75 request
.user
.email
= email
77 request
.user
.set_password(passwd1
)
79 return HttpResponseRedirect('/devel/')
80 return render_response(request
, 'devel/profile.html', {'errors':errors
,'email':request
.user
.email
})
84 t
= loader
.get_template('devel/pkgmaint_guide.txt')
86 return HttpResponse(t
.render(c
), mimetype
="text/plain")
87 #return render_response(request, 'devel/pkgmaint_guide.txt',
88 # mimetype='text/plain')
90 def siteindex(request
):
91 # get the most recent 10 news items
92 news
= News
.objects
.order_by('-postdate', '-id')[:10]
93 pkgs
= Package
.objects
.exclude(repo__name__exact
='Testing').order_by('-last_update')[:15]
94 repos
= Repo
.objects
.order_by('name')
95 return render_response(request
, 'devel/siteindex.html', {'news_updates':news
,'pkg_updates':pkgs
,'repos':repos
})
98 return render_response(request
, 'devel/cvs.html')
100 def developers(request
):
101 devs
= User
.objects
.order_by('username')
102 return render_response(request
, 'devel/developers.html', {'devs':devs
})
105 donor_count
= Donator
.objects
.count()
106 splitval
= donor_count
/ 4
107 slice1
= Donator
.objects
.all()[:splitval
]
108 slice2
= Donator
.objects
.all()[(splitval
):(splitval
*2)]
109 slice3
= Donator
.objects
.all()[(splitval
*2):(donor_count
-splitval
)]
110 slice4
= Donator
.objects
.all()[(donor_count
-splitval
):donor_count
]
111 return render_response(request
, 'devel/donate.html',
112 {'slice1':slice1
,'slice2':slice2
,'slice3':slice3
,'slice4':slice4
})
114 def download(request
):
115 mirrors
= Mirror
.objects
.order_by('country', 'domain')
116 return render_response(request
, 'devel/download.html', {'mirrors':mirrors
})
118 def projects(request
):
119 return render_response(request
, 'devel/projects.html')
122 return HttpResponse("User-agent: *\nDisallow: /\n", mimetype
="text/plain")
125 return render_response(request
, 'devel/denied.html')
127 # vim: set ts=4 sw=4 et: