2017-07-15 09:00:59 +00:00
|
|
|
from django.db import models
|
|
|
|
|
|
|
|
from utils.models import CampRelatedModel, CreatedUpdatedModel
|
|
|
|
|
|
|
|
|
|
|
|
def get_sponsor_upload_path(instance, filename):
|
|
|
|
return 'public/sponsors/{camp_slug}/{filename}'.format(
|
|
|
|
camp_slug=instance.tier.camp.slug,
|
|
|
|
filename='{}_logo.{}'.format(
|
|
|
|
instance.name.lower(),
|
|
|
|
filename.split('.')[-1]
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
class Sponsor(CreatedUpdatedModel):
|
|
|
|
name = models.CharField(
|
|
|
|
max_length=150,
|
|
|
|
help_text='Name of the sponsor'
|
|
|
|
)
|
|
|
|
|
|
|
|
tier = models.ForeignKey('sponsors.SponsorTier')
|
|
|
|
|
|
|
|
description = models.TextField(
|
|
|
|
help_text='A short description of the sponsorship'
|
|
|
|
)
|
|
|
|
|
2017-07-15 13:21:00 +00:00
|
|
|
logo = models.URLField(
|
|
|
|
max_length=255,
|
|
|
|
help_text='A URL to the logo'
|
2017-07-15 09:00:59 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
url = models.URLField(
|
|
|
|
null=True,
|
|
|
|
blank=True,
|
2017-07-15 13:21:00 +00:00
|
|
|
help_text="An URL to the sponsor."
|
2017-07-15 09:00:59 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
def __str__(self):
|
|
|
|
return '{} ({})'.format(self.name, self.tier.camp)
|
|
|
|
|
|
|
|
|
|
|
|
class SponsorTier(CampRelatedModel):
|
|
|
|
name = models.CharField(
|
|
|
|
max_length=25,
|
|
|
|
help_text='Name of the tier (gold, silver, etc.)'
|
|
|
|
)
|
|
|
|
|
|
|
|
description = models.TextField(
|
|
|
|
help_text='A description of what the tier includes.'
|
|
|
|
)
|
|
|
|
|
|
|
|
camp = models.ForeignKey(
|
|
|
|
'camps.Camp',
|
|
|
|
null=True,
|
|
|
|
related_name='sponsor_tiers',
|
|
|
|
help_text='The camp this sponsor tier belongs to',
|
|
|
|
)
|
|
|
|
|
|
|
|
weight = models.IntegerField(
|
|
|
|
default=0,
|
|
|
|
help_text="""This decides where on the list the tier will be shown. I.e.
|
|
|
|
gold should have a lower value than silver."""
|
|
|
|
)
|
|
|
|
|
|
|
|
def __str__(self):
|
|
|
|
return '{} ({})'.format(self.name, self.camp)
|