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
19 thismaint
= User
.objects
.get(username
=request
.user
.username
)
20 except User
.DoesNotExist
:
21 # weird, we don't have a maintainer record for this logged-in user
24 # get a list of incomplete package todo lists
25 todos
= Todolist
.objects
.get_incomplete()
26 # get flagged-package stats for all maintainers
27 stats
= Package
.objects
.get_flag_stats()
29 # get list of flagged packages for this maintainer
30 pkgs
= Package
.objects
.filter(maintainer
=thismaint
.id).filter(needupdate
=True).order_by('repo', 'pkgname')
35 for repo
in Repo
.objects
.all():
38 'count': Package
.objects
.filter(repo__exact
= repo
).count(),
39 'flagged': Package
.objects
.filter(repo__exact
= repo
).filter(needupdate
=True).count()
42 return render_response(request
, 'devel/index.html',
51 def change_notify(request
):
52 maint
= User
.objects
.get(username
=request
.user
.username
)
53 notify
= request
.POST
.get('notify', 'no')
55 maint
.get_profile().notify
= notify
== 'yes'
56 except UserProfile
.DoesNotExist
:
57 UserProfile(user_id
=maint
.id ,notify
=notify
== 'yes').save()
58 maint
.get_profile().save()
59 return HttpResponseRedirect('/devel/')
62 def change_profile(request
):
65 passwd1
, passwd2
= request
.POST
['passwd'], request
.POST
['passwd2']
66 email
= request
.POST
['email']
68 if passwd1
!= passwd2
:
69 errors
['password'] = [' Passwords do not match. ']
70 validate(errors
, 'Email', email
, validators
.isValidEmail
, False, request
)
73 request
.user
.email
= email
75 request
.user
.set_password(passwd1
)
77 return HttpResponseRedirect('/devel/')
78 return render_response(request
, 'devel/profile.html', {'errors':errors
,'email':request
.user
.email
})
82 return render_response(request
, 'devel/pkgmaint_guide.txt',
83 mimetype
='text/plain')
85 def siteindex(request
):
86 # get the most recent 10 news items
87 news
= News
.objects
.order_by('-postdate', '-id')[:10]
88 pkgs
= Package
.objects
.exclude(repo__name__exact
='Testing').order_by('-last_update')[:15]
89 repos
= Repo
.objects
.order_by('name')
90 return render_response(request
, 'devel/siteindex.html', {'news_updates':news
,'pkg_updates':pkgs
,'repos':repos
})
93 return render_response(request
, 'devel/about.html')
96 return render_response(request
, 'devel/art.html')
99 return render_response(request
, 'devel/cvs.html')
101 def developers(request
):
102 devs
= User
.objects
.order_by('username')
103 return render_response(request
, 'devel/developers.html', {'devs':devs
})
106 donor_count
= Donator
.objects
.count()
107 splitval
= donor_count
/ 4
108 slice1
= Donator
.objects
.all()[:splitval
]
109 slice2
= Donator
.objects
.all()[(splitval
):(splitval
*2)]
110 slice3
= Donator
.objects
.all()[(splitval
*2):(donor_count
-splitval
)]
111 slice4
= Donator
.objects
.all()[(donor_count
-splitval
):donor_count
]
112 return render_response(request
, 'devel/donate.html',
113 {'slice1':slice1
,'slice2':slice2
,'slice3':slice3
,'slice4':slice4
})
115 def download(request
):
116 mirrors
= Mirror
.objects
.order_by('country', 'domain')
117 return render_response(request
, 'devel/download.html', {'mirrors':mirrors
})
120 return render_response(request
, 'devel/irc.html')
122 def moreforums(request
):
123 return render_response(request
, 'devel/moreforums.html')
126 return render_response(request
, 'devel/press.html')
128 def projects(request
):
129 return render_response(request
, 'devel/projects.html')
132 return HttpResponse("User-agent: *\nDisallow: /\n", mimetype
="text/plain")
135 return render_response(request
, 'devel/denied.html')
137 # vim: set ts=4 sw=4 et: