Exemple #1
0
    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
Exemple #2
0
    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 __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)
Exemple #6
0
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))
Exemple #7
0
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))