1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
from django.http import Http404
from pgweb.util.contexts import render_pgweb
from .models import ProfessionalService
regions = (
('africa', 'Africa'),
('asia', 'Asia'),
('europe', 'Europe'),
('northamerica', 'North America'),
('oceania', 'Oceania'),
('southamerica', 'South America'),
)
def root(request, servtype):
title = servtype == 'support' and 'Professional Services' or 'Hosting Providers'
what = servtype == 'support' and 'support' or 'hosting'
support = servtype == 'support'
return render_pgweb(request, 'support', 'profserv/root.html', {
'title': title,
'support': support,
'regions': regions,
'what': what,
})
def region(request, servtype, regionname):
regname = [n for r, n in regions if r == regionname]
if not regname:
raise Http404
regname = regname[0]
what = servtype == 'support' and 'support' or 'hosting'
whatname = servtype == 'support' and 'Professional Services' or 'Hosting Providers'
title = "%s - %s" % (whatname, regname)
support = servtype == 'support'
# DB model is a bit funky here, so use the extra-where functionality to filter properly.
# Field names are cleaned up earlier, so it's safe against injections.
services = ProfessionalService.objects.select_related('org').filter(approved=True).extra(where=["region_%s AND provides_%s" % (regionname, what), ])
return render_pgweb(request, 'support', 'profserv/list.html', {
'title': title,
'support': support,
'what': what,
'whatname': whatname,
'regionname': regname,
'services': services,
})
|