def process_inputs(self, request, args, kwargs): context = {} self.calendar_type = None self.conference = None self.this_day = None self.can_edit_show = False if "calendar_type" in kwargs: self.calendar_type = kwargs['calendar_type'] if self.calendar_type not in list(calendar_type_options.values()): raise Http404 if "day" in self.request.GET: try: self.this_day = get_object_or_404( ConferenceDay, day=datetime.strptime(self.request.GET.get('day', None), URL_DATE)) except ValueError: raise Http404 self.conference = self.this_day.conference elif "conference" in self.request.GET: self.conference = get_conference_by_slug( self.request.GET.get('conference', None)) else: self.conference = get_current_conference() if not self.this_day: self.this_day = get_conference_days( self.conference, open_to_public=True).order_by("day").first() context = { 'calendar_type': self.calendar_type, 'conference': self.conference, 'conference_slugs': conference_slugs(), 'this_day': self.this_day, } if self.calendar_type == "General" and validate_perms( request, self.show_editors, require=False): self.can_edit_show = True if self.this_day: open_to_public = [True] if self.calendar_type == "Volunteer": open_to_public = [True, False] if ConferenceDay.objects.filter( day=self.this_day.day + timedelta(days=1), open_to_public__in=open_to_public).exists(): context['next_date'] = (self.this_day.day + timedelta(days=1)).strftime(URL_DATE) if ConferenceDay.objects.filter( day=self.this_day.day - timedelta(days=1), open_to_public__in=open_to_public).exists(): context['prev_date'] = (self.this_day.day - timedelta(days=1)).strftime(URL_DATE) return context
def process_inputs(self, request, args, kwargs): context = {} self.conference = None self.this_day = None if "day" in self.request.GET: self.this_day = get_object_or_404( ConferenceDay, day=datetime.strptime(self.request.GET.get('day', None), URL_DATE)) self.conference = self.this_day.conference elif "conference" in self.request.GET: self.conference = get_conference_by_slug( self.request.GET.get('conference', None)) else: self.conference = get_current_conference() # volunteer events happen on non-public days, as well, but we'll # default to a public day to start navigation as those tend to have # more need for help. if not self.this_day: self.this_day = get_conference_days( self.conference, open_to_public=True).order_by("day").first() instructions = UserMessage.objects.get_or_create( view=self.__class__.__name__, code="VOLUNTEER_INSTRUCTIONS", defaults={ 'summary': "Volunteer Instructions (in header)", 'description': volunteer_instructions }) pending_instructions = UserMessage.objects.get_or_create( view=self.__class__.__name__, code="PENDING_INSTRUCTIONS", defaults={ 'summary': "Pending Instructions (in modal, approval needed)", 'description': pending_note }) context = { 'conference': self.conference, 'this_day': self.this_day, 'view_header_text': instructions[0].description, 'pending_note': pending_instructions[0].description, } if self.this_day: if ConferenceDay.objects.filter(day=self.this_day.day + timedelta(days=1)).exists(): context['next_date'] = (self.this_day.day + timedelta(days=1)).strftime(URL_DATE) if ConferenceDay.objects.filter(day=self.this_day.day - timedelta(days=1)).exists(): context['prev_date'] = (self.this_day.day - timedelta(days=1)).strftime(URL_DATE) return context
def __init__(self, *args, **kwargs): open_to_public = None if 'conference' in kwargs: conference = kwargs.pop('conference') else: conference = get_current_conference() if 'open_to_public' in kwargs: open_to_public = kwargs.pop('open_to_public') super(ScheduleOccurrenceForm, self).__init__(*args, **kwargs) self.fields['day'].queryset = get_conference_days( conference, open_to_public)
def process_inputs(self, request, args, kwargs): context = {} self.calendar_type = None self.conference = None self.this_day = None if "calendar_type" in kwargs: self.calendar_type = kwargs['calendar_type'] if self.calendar_type not in calendar_type_options.values(): raise Http404 if "day" in self.request.GET: try: self.this_day = get_object_or_404( ConferenceDay, day=datetime.strptime(self.request.GET.get('day', None), URL_DATE)) except ValueError: raise Http404 self.conference = self.this_day.conference elif "conference" in self.request.GET: self.conference = get_conference_by_slug( self.request.GET.get('conference', None)) else: self.conference = get_current_conference() if not self.this_day: self.this_day = get_conference_days( self.conference, open_to_public=True).order_by("day").first() context = { 'calendar_type': self.calendar_type, 'conference': self.conference, 'conference_slugs': conference_slugs(), 'this_day': self.this_day, } if self.this_day: open_to_public = [True] if self.calendar_type == "Volunteer": open_to_public = [True, False] if ConferenceDay.objects.filter( day=self.this_day.day+timedelta(days=1), open_to_public__in=open_to_public).exists(): context['next_date'] = (self.this_day.day+timedelta(days=1) ).strftime(URL_DATE) if ConferenceDay.objects.filter( day=self.this_day.day-timedelta(days=1), open_to_public__in=open_to_public).exists(): context['prev_date'] = (self.this_day.day-timedelta(days=1) ).strftime(URL_DATE) return context
def cal_times_for_conf(conference, day_name=None): from gbe.functions import get_conference_days # late import, circularity days = get_conference_days(conference) if not days.exists(): return get_default_range() if day_name: selected_day = select_day(days, day_name) if not selected_day: return get_default_range() day = date_to_datetime(selected_day.day) if day: return day + Duration(hours=8), day + Duration(hours=28) else: first_day = date_to_datetime(days.first().day) last_day = date_to_datetime(days.last().day) return (first_day + Duration(hours=8), last_day + Duration(hours=28))