summaryrefslogtreecommitdiff
path: root/devel
diff options
context:
space:
mode:
Diffstat (limited to 'devel')
-rw-r--r--devel/models.py56
-rw-r--r--devel/views.py72
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})