diff options
Diffstat (limited to 'devel')
-rw-r--r-- | devel/models.py | 56 | ||||
-rw-r--r-- | devel/views.py | 72 |
2 files changed, 40 insertions, 88 deletions
diff --git a/devel/models.py b/devel/models.py deleted file mode 100644 index d78989f5..00000000 --- a/devel/models.py +++ /dev/null @@ -1,56 +0,0 @@ -from django.db import models -from django.contrib.auth.models import User - -class Mirror(models.Model): - id = models.AutoField(primary_key=True) - domain = models.CharField(maxlength=255) - country = models.CharField(maxlength=255) - url = models.CharField(maxlength=255) - protocol_list = models.CharField(maxlength=255, null=True, blank=True) - admin_email = models.CharField(maxlength=255, null=True, blank=True) - def __str__(self): - return self.domain - class Meta: - db_table = 'common_mirror' - class Admin: - list_display = ('domain', 'country') - list_filter = ('country',) - ordering = ['domain'] - search_fields = ('domain') - pass - -class Donator(models.Model): - id = models.AutoField(primary_key=True) - name = models.CharField(maxlength=255) - def __str__(self): - return self.name - class Meta: - db_table = 'common_donator' - class Admin: - ordering = ['name'] - search_fields = ('name') - pass - -class UserProfile(models.Model): - id = models.AutoField(primary_key=True) # not technically needed - notify = models.BooleanField("Send notifications", default=True, help_text="When enabled, user will recieve 'flag out of date' notifications") - alias = models.CharField(core=True, maxlength=50, help_text="Required field") - public_email = models.CharField(core=True, maxlength=50, help_text="Required field") - other_contact = models.CharField(maxlength=100, null=True, blank=True) - website = models.URLField(null=True, blank=True) - yob = models.IntegerField(null=True, blank=True) - location = models.CharField(maxlength=50, null=True, blank=True) - languages = models.CharField(maxlength=50, null=True, blank=True) - interests = models.CharField(maxlength=255, null=True, blank=True) - occupation = models.CharField(maxlength=50, null=True, blank=True) - roles = models.CharField(maxlength=255, null=True, blank=True) - favorite_distros = models.CharField(maxlength=255, null=True, blank=True) - picture = models.FileField(upload_to='devs', default='devs/silhouette.png') - user = models.ForeignKey(User, edit_inline=models.STACKED, num_in_admin=1, min_num_in_admin=1, max_num_in_admin=1, num_extra_on_change=0, unique=True) - class Meta: - db_table = 'user_profiles' - verbose_name = 'Additional Profile Data' - verbose_name_plural = 'Additional Profile Data' - -# vim: set ts=4 sw=4 et: - diff --git a/devel/views.py b/devel/views.py index 65dde8ae..d825e31d 100644 --- a/devel/views.py +++ b/devel/views.py @@ -1,19 +1,13 @@ from django.http import HttpResponse, HttpResponseRedirect -from django.contrib.auth.decorators import login_required from django.contrib.auth.models import User from django.core import validators -from archweb_dev.lib.utils import render_response -from archweb_dev.packages.models import Package, Repo -from archweb_dev.todolists.models import Todolist, TodolistPkg -from archweb_dev.lib.utils import validate -from archweb_dev.devel.models import UserProfile -from archweb_dev.news.models import News -from archweb_dev.devel.models import Donator, Mirror +from archweb_dev.main.utils import render_response, validate +from archweb_dev.main.models import Package, Todolist, TodolistPkg +from archweb_dev.main.models import Arch, Repo +from archweb_dev.main.models import UserProfile, News, Donor, Mirror from django.http import HttpResponse from django.template import Context, loader - -@login_required def index(request): try: thismaint = User.objects.get(username=request.user.username) @@ -27,26 +21,36 @@ def index(request): stats = Package.objects.get_flag_stats() if thismaint: # get list of flagged packages for this maintainer - pkgs = Package.objects.filter(maintainer=thismaint.id).filter(needupdate=True).order_by('repo', 'pkgname') + pkgs = Package.objects.filter( + maintainer=thismaint.id).filter( + needupdate=True).order_by('repo', 'pkgname') else: pkgs = None + arch_stats = [] + for xarch in Arch.objects.all(): + arch_stats.append({ + 'name': xarch.name, + 'count': Package.objects.filter(arch=xarch).count(), + 'flagged': Package.objects.filter(arch=xarch).filter( + needupdate=True).exclude( + repo__name__iexact='testing').count() + }) + repo_stats = [] - for repo in Repo.objects.all(): + for xrepo in Repo.objects.all(): repo_stats.append({ - 'name': repo.name, - 'count': Package.objects.filter(repo__exact = repo).count(), - 'flagged': Package.objects.filter(repo__exact = repo).filter(needupdate=True).count() + 'name': xrepo.name, + 'count': Package.objects.filter(repo=xrepo).count(), + 'flagged': Package.objects.filter( + repo=xrepo).filter(needupdate=True).count() }) - return render_response(request, 'devel/index.html', - {'stats':stats, - 'pkgs':pkgs, - 'todos':todos, - 'maint':thismaint, - 'repos': repo_stats}) + return render_response( + request, 'devel/index.html', + {'stats': stats, 'pkgs': pkgs, 'todos': todos, 'maint': thismaint, + 'repos': repo_stats, 'arches': arch_stats}) -@login_required #@is_maintainer def change_notify(request): maint = User.objects.get(username=request.user.username) @@ -58,7 +62,6 @@ def change_notify(request): maint.get_profile().save() return HttpResponseRedirect('/devel/') -@login_required def change_profile(request): errors = {} if request.POST: @@ -77,7 +80,6 @@ def change_profile(request): return HttpResponseRedirect('/devel/') return render_response(request, 'devel/profile.html', {'errors':errors,'email':request.user.email}) -@login_required def guide(request): t = loader.get_template('devel/pkgmaint_guide.txt') c = Context() @@ -88,9 +90,11 @@ def guide(request): def siteindex(request): # get the most recent 10 news items news = News.objects.order_by('-postdate', '-id')[:10] - pkgs = Package.objects.exclude(repo__name__exact='Testing').order_by('-last_update')[:15] - repos = Repo.objects.order_by('name') - return render_response(request, 'devel/siteindex.html', {'news_updates':news,'pkg_updates':pkgs,'repos':repos}) + pkgs = Package.objects.exclude(repo__name__iexact='testing').order_by('-last_update')[:15] + repos = Repo.objects.all() + return render_response( + request, 'devel/siteindex.html', + {'news_updates': news, 'pkg_updates': pkgs, 'repos': repos}) def cvs(request): return render_response(request, 'devel/cvs.html') @@ -99,13 +103,17 @@ def developers(request): devs = User.objects.filter(is_active=True).order_by('username') return render_response(request, 'devel/developers.html', {'devs':devs}) +def fellows(request): + fellows = User.objects.filter(is_active=False).order_by('username') + return render_response(request, 'devel/fellows.html', {'fellows':fellows}) + def donate(request): - donor_count = Donator.objects.count() + donor_count = Donor.objects.count() splitval = donor_count / 4 - slice1 = Donator.objects.all()[:splitval] - slice2 = Donator.objects.all()[(splitval):(splitval*2)] - slice3 = Donator.objects.all()[(splitval*2):(donor_count-splitval)] - slice4 = Donator.objects.all()[(donor_count-splitval):donor_count] + slice1 = Donor.objects.all()[:splitval] + slice2 = Donor.objects.all()[(splitval):(splitval*2)] + slice3 = Donor.objects.all()[(splitval*2):(donor_count-splitval)] + slice4 = Donor.objects.all()[(donor_count-splitval):donor_count] return render_response(request, 'devel/donate.html', {'slice1':slice1,'slice2':slice2,'slice3':slice3,'slice4':slice4}) |