1 from django
.http
import Http404
2 from pgweb
.util
.decorators
import login_required
4 from pgweb
.util
.contexts
import render_pgweb
5 from pgweb
.util
.helpers
import simple_form
7 from .models
import ProfessionalService
8 from .forms
import ProfessionalServiceForm
14 ('northamerica', 'North America'),
15 ('oceania', 'Oceania'),
16 ('southamerica', 'South America'),
20 def root(request
, servtype
):
21 title
= servtype
== 'support' and 'Professional Services' or 'Hosting Providers'
22 what
= servtype
== 'support' and 'support' or 'hosting'
23 support
= servtype
== 'support'
24 return render_pgweb(request
, 'support', 'profserv/root.html', {
32 def region(request
, servtype
, regionname
):
33 regname
= [n
for r
, n
in regions
if r
== regionname
]
38 what
= servtype
== 'support' and 'support' or 'hosting'
39 whatname
= servtype
== 'support' and 'Professional Services' or 'Hosting Providers'
40 title
= "%s - %s" % (whatname
, regname
)
41 support
= servtype
== 'support'
43 # DB model is a bit funky here, so use the extra-where functionality to filter properly.
44 # Field names are cleaned up earlier, so it's safe against injections.
45 services
= ProfessionalService
.objects
.select_related('org').filter(approved
=True).extra(where
=["region_%s AND provides_%s" % (regionname
, what
), ])
47 return render_pgweb(request
, 'support', 'profserv/list.html', {
52 'regionname': regname
,
59 def profservform(request
, itemid
):
60 return simple_form(ProfessionalService
, itemid
, request
, ProfessionalServiceForm
,
61 redirect
='/account/edit/services/')