38 lines
1.5 KiB
Python
38 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
|