1203 Done. Need testing.

remotes/origin/1203
Alexander Burdeiny 10 years ago
parent dd9355f09e
commit 940bc2eb30
  1. 7
      conference/models.py
  2. 7
      exposition/models.py
  3. 12
      functions/model_mixin.py

@ -136,11 +136,8 @@ class Conference(TranslatableModel, EventMixin, ExpoMixin):
#return list(Service.objects.language().filter(url__in=ids, type=Service.type.conference).order_by('sort')) #return list(Service.objects.language().filter(url__in=ids, type=Service.type.conference).order_by('sort'))
def get_services_detail(self): def get_services_detail(self):
excluded = ['tickets'] # excluded = ['tickets']
country_ids = [item for item, bool in self.country.services if bool==True] return super(Conference, self).get_services_detail(None, Service.type.conference)
ids = [item for item, bool in self.services if bool==True]
qs = Service.objects.language().exclude(url__in=excluded).filter(Q(Q(url__in=country_ids) & Q(type=Service.type.conference)) | Q(url__in=ids))
return list(qs)
def get_nearest_events(self): def get_nearest_events(self):
if self.theme.all(): if self.theme.all():

@ -179,11 +179,8 @@ class Exposition(TranslatableModel, EventMixin, ExpoMixin):
return list(qs) return list(qs)
def get_services_detail(self): def get_services_detail(self):
excluded = ['visit', 'tickets'] excluded = ['visit']
country_ids = [item for item, bool in self.country.services if bool==True] return super(Exposition, self).get_services_detail(excluded, Service.type.expo)
ids = [item for item, bool in self.services if bool==True]
qs = Service.objects.language().exclude(url__in=excluded).filter(Q(Q(url__in=country_ids) & Q(type=Service.type.expo)) | Q(url__in=ids))
return list(qs)
def get_parent(self): def get_parent(self):
return {} return {}

@ -88,6 +88,18 @@ class EventMixin(object):
return list(Service.objects.language().filter(url__in=ids).order_by('sort')) return list(Service.objects.language().filter(url__in=ids).order_by('sort'))
def get_services_detail(self, exluded, _type):
if not isinstance(getattr(self, '_get_services_detail', None), list):
# excluded = ['visit', 'tickets']
country_ids = [item for item, bool in self.country.services if bool==True]
ids = [item for item, bool in self.services if bool==True]
qs = Service.objects.language()
if exluded is not None:
qs = qs.exclude(url__in=excluded)
qs = qs.filter(Q(Q(url__in=country_ids) & Q(type=_type)) | Q(url__in=ids))
self._get_services_detail = list(qs)
return self._get_services_detail
def duration_days(self, month=None): def duration_days(self, month=None):
if not month: if not month:
d = self.data_end - self.data_begin d = self.data_end - self.data_begin

Loading…
Cancel
Save