39 lines
1.5 KiB
Python
39 lines
1.5 KiB
Python
|
from django.db import models
|
||
|
|
||
|
|
||
|
class SponsorManager(models.Manager):
|
||
|
|
||
|
def active(self):
|
||
|
return self.get_query_set().filter(active=True).order_by("level")
|
||
|
|
||
|
def with_weblogo(self):
|
||
|
queryset = self.raw("""
|
||
|
SELECT DISTINCT
|
||
|
"sponsorship_sponsor"."id",
|
||
|
"sponsorship_sponsor"."applicant_id",
|
||
|
"sponsorship_sponsor"."name",
|
||
|
"sponsorship_sponsor"."external_url",
|
||
|
"sponsorship_sponsor"."annotation",
|
||
|
"sponsorship_sponsor"."contact_name",
|
||
|
"sponsorship_sponsor"."contact_email",
|
||
|
"sponsorship_sponsor"."level_id",
|
||
|
"sponsorship_sponsor"."added",
|
||
|
"sponsorship_sponsor"."active",
|
||
|
"sponsorship_sponsorlevel"."order"
|
||
|
FROM
|
||
|
"sponsorship_sponsor"
|
||
|
INNER JOIN
|
||
|
"sponsorship_sponsorbenefit" ON ("sponsorship_sponsor"."id" = "sponsorship_sponsorbenefit"."sponsor_id")
|
||
|
INNER JOIN
|
||
|
"sponsorship_benefit" ON ("sponsorship_sponsorbenefit"."benefit_id" = "sponsorship_benefit"."id")
|
||
|
LEFT OUTER JOIN
|
||
|
"sponsorship_sponsorlevel" ON ("sponsorship_sponsor"."level_id" = "sponsorship_sponsorlevel"."id")
|
||
|
WHERE (
|
||
|
"sponsorship_sponsor"."active" = 't' AND
|
||
|
"sponsorship_benefit"."type" = 'weblogo' AND
|
||
|
"sponsorship_sponsorbenefit"."upload" != ''
|
||
|
)
|
||
|
ORDER BY "sponsorship_sponsorlevel"."order" ASC, "sponsorship_sponsor"."added" ASC
|
||
|
""")
|
||
|
return queryset
|