2008-09-16 18:12:26 -07:00
|
|
|
from django import forms
|
2008-10-07 12:59:40 -07:00
|
|
|
from django.http import HttpResponseRedirect
|
2007-11-03 00:45:10 -07:00
|
|
|
from django.contrib.auth.models import User
|
2008-09-16 18:12:26 -07:00
|
|
|
from archweb_dev.main.utils import render_response
|
2008-10-05 18:46:28 -07:00
|
|
|
from archweb_dev.main.models import Package, Todolist
|
2008-04-09 19:28:24 -07:00
|
|
|
from archweb_dev.main.models import Arch, Repo
|
2008-10-07 12:59:40 -07:00
|
|
|
from archweb_dev.main.models import UserProfile, News
|
2007-12-29 18:25:03 -08:00
|
|
|
|
2007-11-03 00:45:10 -07:00
|
|
|
def index(request):
|
2008-10-07 08:13:34 -07:00
|
|
|
'''the Developer dashboard'''
|
2007-12-29 15:34:02 -08:00
|
|
|
todos = Todolist.objects.get_incomplete()
|
2008-10-10 15:32:25 -07:00
|
|
|
pkgs = Package.objects.filter(
|
|
|
|
maintainer=request.user).filter(
|
|
|
|
needupdate=True).order_by('repo', 'pkgname')
|
2008-03-22 21:01:16 -07:00
|
|
|
|
2008-03-08 12:11:02 -08:00
|
|
|
return render_response(
|
|
|
|
request, 'devel/index.html',
|
2008-10-10 15:32:25 -07:00
|
|
|
{'pkgs': pkgs, 'todos': todos, 'maint': request.user,
|
2008-10-07 08:48:58 -07:00
|
|
|
'repos': Repo.objects.all(), 'arches': Arch.objects.all(),
|
|
|
|
'maintainers':
|
2008-10-10 15:32:25 -07:00
|
|
|
[User(id=0, username="orphan", first_name="Orphans")] + list(
|
|
|
|
User.objects.all())
|
2008-10-07 08:48:58 -07:00
|
|
|
})
|
2007-11-03 00:45:10 -07:00
|
|
|
|
|
|
|
def change_notify(request):
|
2007-12-29 15:34:02 -08:00
|
|
|
maint = User.objects.get(username=request.user.username)
|
|
|
|
notify = request.POST.get('notify', 'no')
|
|
|
|
try:
|
|
|
|
maint.get_profile().notify = notify == 'yes'
|
|
|
|
except UserProfile.DoesNotExist:
|
|
|
|
UserProfile(user_id=maint.id ,notify=notify == 'yes').save()
|
|
|
|
maint.get_profile().save()
|
|
|
|
return HttpResponseRedirect('/devel/')
|
2007-11-03 00:45:10 -07:00
|
|
|
|
2008-09-16 18:12:26 -07:00
|
|
|
class ProfileForm(forms.Form):
|
|
|
|
email = forms.EmailField('E-mail Address')
|
|
|
|
passwd1 = forms.CharField('New Password', required=False,
|
|
|
|
widget=forms.PasswordInput)
|
|
|
|
passwd2 = forms.CharField('Confirm Password', required=False,
|
|
|
|
widget=forms.PasswordInput)
|
|
|
|
|
|
|
|
def clean(self):
|
|
|
|
if ('passwd1' not in self.cleaned_data and
|
|
|
|
'passwd2' not in self.cleaned_data):
|
|
|
|
return self.cleaned_data
|
|
|
|
|
|
|
|
if self.cleaned_data['passwd1'] != self.cleaned_data['passwd2']:
|
|
|
|
raise forms.ValidationError('Passwords do not match')
|
|
|
|
return self.cleaned_data
|
|
|
|
|
2007-11-03 00:45:10 -07:00
|
|
|
def change_profile(request):
|
2007-12-29 15:34:02 -08:00
|
|
|
if request.POST:
|
2008-09-16 18:12:26 -07:00
|
|
|
form = ProfileForm(request.POST)
|
|
|
|
if form.is_valid():
|
|
|
|
request.user.email = form.cleaned_data['email']
|
|
|
|
request.user.set_password(form.cleaned_data['passwd1'])
|
2007-12-29 15:34:02 -08:00
|
|
|
request.user.save()
|
|
|
|
return HttpResponseRedirect('/devel/')
|
2008-09-16 18:12:26 -07:00
|
|
|
else:
|
|
|
|
form = ProfileForm(initial={'email': request.user.email})
|
|
|
|
return render_response(request, 'devel/profile.html', {'form': form})
|
2007-11-03 00:45:10 -07:00
|
|
|
|
2007-12-29 18:25:03 -08:00
|
|
|
def siteindex(request):
|
|
|
|
news = News.objects.order_by('-postdate', '-id')[:10]
|
2008-10-07 08:10:21 -07:00
|
|
|
pkgs = Package.objects.exclude(repo__name__iexact='testing').order_by(
|
|
|
|
'-last_update')[:15]
|
2008-04-09 19:28:24 -07:00
|
|
|
repos = Repo.objects.all()
|
2008-03-08 12:11:02 -08:00
|
|
|
return render_response(
|
|
|
|
request, 'devel/siteindex.html',
|
|
|
|
{'news_updates': news, 'pkg_updates': pkgs, 'repos': repos})
|
2007-12-29 18:25:03 -08:00
|
|
|
|
|
|
|
def denied(request):
|
2007-12-29 18:42:50 -08:00
|
|
|
return render_response(request, 'devel/denied.html')
|
2007-12-29 16:42:55 -08:00
|
|
|
|
|
|
|
# vim: set ts=4 sw=4 et:
|
|
|
|
|