2011-08-19 10:38:17 -07:00
from django . conf import settings
2010-02-04 18:44:46 -08:00
from django . contrib . auth . models import User
2011-02-27 09:52:27 -08:00
from django . http import Http404
2009-10-30 11:56:21 -07:00
from django . views . generic import list_detail
2010-09-03 11:16:18 -07:00
from django . views . generic . simple import direct_to_template
2009-10-30 11:56:21 -07:00
2011-11-30 11:55:36 -08:00
from devel . models import MasterKey
from main . models import Arch , Repo , Donor
from mirrors . models import MirrorUrl
from news . models import News
from utils import get_recent_updates
2009-10-30 13:32:25 -07:00
2009-10-30 11:56:21 -07:00
def index ( request ) :
2011-11-30 11:55:36 -08:00
pkgs = get_recent_updates ( )
2009-10-30 13:32:25 -07:00
context = {
2011-07-22 07:25:57 -07:00
' news_updates ' : News . objects . order_by ( ' -postdate ' , ' -id ' ) [ : 15 ] ,
2010-02-04 18:44:46 -08:00
' pkg_updates ' : pkgs ,
2009-10-30 13:32:25 -07:00
}
2010-09-03 11:16:18 -07:00
return direct_to_template ( request , ' public/index.html ' , context )
2009-10-30 14:08:37 -07:00
2011-02-27 09:52:27 -08:00
USER_LISTS = {
' devs ' : {
' user_type ' : ' Developers ' ,
' description ' : " This is a list of the current Arch Linux Developers. They maintain the [core] and [extra] package repositories in addition to doing any other developer duties. " ,
} ,
' tus ' : {
' user_type ' : ' Trusted Users ' ,
' description ' : " Here are all your friendly Arch Linux Trusted Users who are in charge of the [community] repository. " ,
} ,
' fellows ' : {
' user_type ' : ' Fellows ' ,
' description ' : " Below you can find a list of ex-developers (aka project fellows). These folks helped make Arch what it is today. Thanks! " ,
} ,
}
2011-10-11 17:29:15 -07:00
def userlist ( request , user_type = ' devs ' ) :
2011-11-21 08:08:23 -08:00
users = User . objects . order_by (
' first_name ' , ' last_name ' ) . select_related ( ' userprofile ' )
2011-10-11 17:29:15 -07:00
if user_type == ' devs ' :
2010-03-06 07:20:35 -08:00
users = users . filter ( is_active = True , groups__name = " Developers " )
2011-10-11 17:29:15 -07:00
elif user_type == ' tus ' :
2010-03-06 07:20:35 -08:00
users = users . filter ( is_active = True , groups__name = " Trusted Users " )
2011-10-11 17:29:15 -07:00
elif user_type == ' fellows ' :
2011-11-21 08:08:23 -08:00
users = users . filter ( is_active = False ,
groups__name__in = [ " Developers " , " Trusted Users " ] )
2011-02-27 09:52:27 -08:00
else :
raise Http404
2009-10-30 11:56:21 -07:00
2011-10-11 17:29:15 -07:00
context = USER_LISTS [ user_type ] . copy ( )
2011-02-27 09:52:27 -08:00
context [ ' users ' ] = users
2010-09-03 11:16:18 -07:00
return direct_to_template ( request , ' public/userlist.html ' , context )
2009-10-30 11:56:21 -07:00
def donate ( request ) :
2009-10-30 14:08:37 -07:00
context = {
2010-10-01 11:05:19 -07:00
' donors ' : Donor . objects . filter ( visible = True ) . order_by ( ' name ' ) ,
2009-10-30 14:08:37 -07:00
}
2010-09-03 11:16:18 -07:00
return direct_to_template ( request , ' public/donate.html ' , context )
2009-10-30 11:56:21 -07:00
def download ( request ) :
2010-10-04 15:37:39 -07:00
qset = MirrorUrl . objects . select_related ( ' mirror ' , ' protocol ' ) . filter (
2010-10-04 15:40:38 -07:00
protocol__is_download = True ,
2009-10-30 11:56:21 -07:00
mirror__public = True , mirror__active = True , mirror__isos = True
)
2011-08-19 10:38:17 -07:00
context = {
' releng_iso_url ' : settings . ISO_LIST_URL ,
2011-12-04 08:51:36 -08:00
' releng_pxeboot_url ' : settings . PXEBOOT_URL ,
2011-08-19 10:38:17 -07:00
}
2009-10-30 11:56:21 -07:00
return list_detail . object_list ( request ,
2010-05-16 12:02:09 -07:00
qset . order_by ( ' mirror__country ' , ' mirror__name ' , ' protocol ' ) ,
2009-10-30 11:56:21 -07:00
template_name = " public/download.html " ,
2011-08-19 10:38:17 -07:00
template_object_name = " mirror_url " ,
extra_context = context )
2009-10-30 11:56:21 -07:00
2010-02-02 20:36:41 -08:00
def feeds ( request ) :
context = {
' arches ' : Arch . objects . all ( ) ,
' repos ' : Repo . objects . all ( ) ,
}
2010-09-03 11:16:18 -07:00
return direct_to_template ( request , ' public/feeds.html ' , context )
2010-02-02 20:36:41 -08:00
2011-11-30 11:55:36 -08:00
def keys ( request ) :
context = {
2011-11-30 12:45:05 -08:00
' keys ' : MasterKey . objects . select_related ( ' owner ' , ' revoker ' ,
' owner__userprofile ' , ' revoker__userprofile ' ) . all ( ) ,
2011-11-30 11:55:36 -08:00
}
return direct_to_template ( request , ' public/keys.html ' , context )
2009-10-30 11:56:21 -07:00
# vim: set ts=4 sw=4 et: