2010-09-07 22:23:55 -07:00
from main . models import Arch , Repo , Donor
2010-09-06 10:01:46 -07:00
from mirrors . models import MirrorUrl
2010-09-07 22:23:55 -07:00
from news . models import News
2010-02-04 18:44:46 -08:00
from . import utils
from django . contrib . auth . models import User
2009-10-30 11:56:21 -07:00
from django . db . models import Q
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
2009-10-30 13:32:25 -07:00
2009-10-30 11:56:21 -07:00
def index ( request ) :
2010-02-04 18:44:46 -08:00
pkgs = utils . get_recent_updates ( )
2009-10-30 13:32:25 -07:00
context = {
2009-10-31 09:12:03 -07:00
' news_updates ' : News . objects . order_by ( ' -postdate ' , ' -id ' ) [ : 10 ] ,
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! " ,
} ,
}
def userlist ( request , type = ' devs ' ) :
2010-10-04 15:44:40 -07:00
users = User . objects . order_by ( ' username ' ) . select_related ( ' userprofile ' )
2011-02-27 09:52:27 -08:00
if type == ' devs ' :
2010-03-06 07:20:35 -08:00
users = users . filter ( is_active = True , groups__name = " Developers " )
2011-02-27 09:52:27 -08:00
elif type == ' tus ' :
2010-03-06 07:20:35 -08:00
users = users . filter ( is_active = True , groups__name = " Trusted Users " )
2011-02-27 09:52:27 -08:00
elif type == ' fellows ' :
2011-02-27 09:42:27 -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-02-27 09:52:27 -08:00
context = USER_LISTS [ type ] . copy ( )
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
)
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 " ,
2010-05-26 07:58:43 -07:00
template_object_name = " mirror_url " )
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
2009-10-30 11:56:21 -07:00
# vim: set ts=4 sw=4 et: