Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class CorecrmModel(SaveTheChange, models.Model):
- request = None
- def delete(self):
- if hasattr(self, 'active'):
- self.active = False
- self.save()
- elif hasattr(self, 'is_active'):
- self.is_active = False
- self.save()
- else:
- super(CorecrmModel, self).delete()
- class Meta:
- abstract = True
- class VenueType(CorecrmModel):
- name = models.CharField(max_length=50)
- def __unicode__(self):
- return self.name
- class Venue(CorecrmModel):
- name = models.CharField(max_length=100, blank=False)
- logo = ImageWithThumbsField(upload_to='venue/venue/logo/', sizes=((80, 125), (125, 80), (103, 103)),
- blank=True, default='')
- group = models.ForeignKey(GroupOperator, default=1)
- venue_type = models.ManyToManyField(VenueType, help_text='')
- address1 = models.CharField(max_length=255, blank=False)
- address2 = models.CharField(max_length=255, blank=True)
- address3 = models.CharField(max_length=255, blank=True)
- city = models.CharField(max_length=50, blank=False)
- region = models.CharField(max_length=50, blank=True)
- postcode = models.CharField(max_length=10, blank=False)
- country = models.CharField(max_length=255, blank=True, default='')
- bdm = models.ForeignKey('people.UserProfile', related_name='venue_bdms',
- verbose_name='BDM',
- limit_choices_to={'groups__name__in': [u'BDM']}
- )
- hoo = models.ForeignKey('people.UserProfile', related_name='venue_hoos',
- verbose_name='head of ops',
- limit_choices_to={'groups__name__in': [u'Head of Ops']}
- )
- function_facilities = models.ManyToManyField(VenueFunctionFacility, blank=True)
- screening_formats = models.ManyToManyField('cinema.ScreeningFormat', blank=True, null=True)
- default_pre_film_time = models.PositiveSmallIntegerField(blank=True, null=True)
- default_post_film_time = models.PositiveSmallIntegerField(blank=True, null=True)
- fes_id = models.PositiveIntegerField(blank=True, null=True)
- def __unicode__(self):
- return self.name
- class Area(CorecrmModel):
- name = models.CharField(max_length=100, verbose_name=u'name of area')
- friendly_name = models.CharField(max_length=100, blank=True, default='')
- venue = models.ForeignKey(Venue)
- area_type = models.ManyToManyField(AreaType)
- description = models.TextField(blank=True)
- configurable = models.BooleanField(default=False, verbose_name='table layout can be changed')
- capacity = models.IntegerField(default=0)
- code = models.CharField(max_length=100, blank=True, default='')
- is_customer_selectable = models.BooleanField(default=True)
- is_online_bookable = models.BooleanField(default=True)
- max_standing = models.SmallIntegerField(default=0)
- max_seating = models.SmallIntegerField(default=0)
- include_in_avail_search = models.BooleanField(default=True)
- order = models.SmallIntegerField(blank=True, default=0)
- min_covers = models.SmallIntegerField(default=0, verbose_name="minimum covers per table")
- max_covers = models.SmallIntegerField(default=0, verbose_name="maximum covers per table")
- def __unicode__(self):
- return "%s, %s" % (self.venue.name, self.name)
- class AreaLayout(CorecrmModel):
- name = models.CharField(max_length=100)
- description = models.TextField()
- area = models.ForeignKey(Area)
- additional_notes = models.TextField(blank=True)
- layout_type = models.ManyToManyField(AreaLayoutType, default=None)
- def __unicode__(self):
- return "%s: %s" % (self.area.venue.name, self.name)
- class Booth(CorecrmModel):
- name = models.CharField(max_length=100)
- description = models.TextField(blank=True)
- area_layout = models.ForeignKey(AreaLayout, limit_choices_to={
- 'area__venue__venue_type__name__in': ['Nightclub', 'Pub', 'Bar']})
- capacity = models.IntegerField()
- class BoothAdmin(admin.ModelAdmin):
- list_filter = [PermittedVenueForBoothListFilter]
- ordering = ['area_layout__area__venue__name', 'name']
- def queryset(self, request):
- queryset = Booth.objects.none()
- venues = request.user.valid_venues
- for venue in venues:
- for area in venue.area_set.all():
- for al in area.arealayout_set.all():
- queryset = queryset | al.booth_set.all()
- return queryset
- def __unicode__(self):
- return "%s: %s" % (self.area_layout.area.venue.name, self.name)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement