def event_edit(request, id=None, extra_context=None): try: event = Event.objects.get(pk=id) except Event.DoesNotExist: raise Http404("Event with id '%s' does not exist." % id) context = {'event': event} if not admin_of_event(event, request.user): raise Http403('You are not allowed to edit this event.') if is_recruiter(event.owner): form_class = EventForm elif is_campus_org(event.owner): context['max_industries'] = s.EP_MAX_INDUSTRIES context['attending_employers'] = event.attending_employers form_class = CampusOrgEventForm if request.method == 'POST': form = form_class(request.POST, instance=event) if form.is_valid(): event = form.save(commit=False) event.edits.add(Edit.objects.create(user=request.user)) for employer in event.attending_employers.all(): event.previously_attending_employers.add(employer) event.save() form.save_m2m() # Update index event.save() notify_about_event(event, "new_event", [ e for e in list(event.attending_employers.all()) if e not in list(event.previously_attending_employers.all()) ]) return HttpResponseRedirect( reverse('event_page', kwargs={ 'id': event.id, 'slug': event.slug })) else: form = form_class(instance=event) context['edit'] = True context['hours'] = map(lambda x, y: str(x) + y, [12] + range(1, 13) + range(1, 12), ['am'] * 12 + ['pm'] * 12) context['form'] = form context['today'] = datetime.now().strftime('%m/%d/%Y') if event.type.name == "Hard Deadline": context['event_scheduler_date'] = event.end_datetime.strftime( '%m/%d/%Y') elif event.type.name == "Rolling Deadline": context['event_scheduler_date'] = datetime.now().strftime('%m/%d/%Y') else: context['event_scheduler_date'] = event.start_datetime.strftime( '%m/%d/%Y') context.update(extra_context or {}) return context
def event_new(request, form_class=None, extra_context=None): context = {} if is_recruiter(request.user): employer = request.user.recruiter.employer form_class = EventForm elif is_campus_org(request.user): form_class = CampusOrgEventForm context['max_industries'] = s.EP_MAX_INDUSTRIES if request.method == 'POST': form = form_class(data=request.POST) if form.is_valid(): event = form.save(commit=False) event.owner = request.user event.save() form.save_m2m() if event.type.name == "Rolling Deadline": event.start_datetime = datetime.now() - timedelta(weeks=1) event.end_datetime = datetime.now() + timedelta(weeks=1000) event.save() elif event.type.name == "Hard Deadline": event.start_datetime = event.end_datetime event.save() if is_recruiter(request.user): event.attending_employers.add(employer) # Update index employer.save() notify_about_event(event, "new_event", event.attending_employers.all()) # Update index event.save() return HttpResponseRedirect( reverse('event_page', kwargs={ 'id': event.id, 'slug': event.slug })) else: form = form_class( initial={ 'start_datetime': datetime.now() + timedelta(minutes=30), 'end_datetime': datetime.now() + timedelta(hours=1, minutes=30), }) context['hours'] = map(lambda x, y: str(x) + y, [12] + range(1, 13) + range(1, 12), ['am'] * 12 + ['pm'] * 12) context['form'] = form context['today'] = datetime.now().strftime('%m/%d/%Y') context['event_scheduler_date'] = datetime.now().strftime('%m/%d/%Y') context.update(extra_context or {}) return context
def event_edit(request, id=None, extra_context=None): try: event = Event.objects.get(pk=id) except Event.DoesNotExist: raise Http404("Event with id '%s' does not exist." % id) context = {'event': event} if not admin_of_event(event, request.user): raise Http403('You are not allowed to edit this event.') if is_recruiter(event.owner): form_class = EventForm elif is_campus_org(event.owner): context['max_industries'] = s.EP_MAX_INDUSTRIES context['attending_employers'] = event.attending_employers form_class = CampusOrgEventForm if request.method == 'POST': form = form_class(request.POST, instance=event) if form.is_valid(): event = form.save(commit=False) event.edits.add(Edit.objects.create(user=request.user)) for employer in event.attending_employers.all(): event.previously_attending_employers.add(employer) event.save() form.save_m2m() # Update index event.save() notify_about_event(event, "new_event", [e for e in list(event.attending_employers.all()) if e not in list(event.previously_attending_employers.all())]) return HttpResponseRedirect(reverse('event_page', kwargs={'id':event.id, 'slug':event.slug})) else: form = form_class(instance=event) context['edit'] = True context['hours'] = map(lambda x,y: str(x) + y, [12] + range(1,13) + range(1,12), ['am']*12 + ['pm']*12) context['form'] = form context['today'] = datetime.now().strftime('%m/%d/%Y') if event.type.name == "Hard Deadline": context['event_scheduler_date'] = event.end_datetime.strftime('%m/%d/%Y') elif event.type.name == "Rolling Deadline": context['event_scheduler_date'] = datetime.now().strftime('%m/%d/%Y') else: context['event_scheduler_date'] = event.start_datetime.strftime('%m/%d/%Y') context.update(extra_context or {}) return context
def event_new(request, form_class=None, extra_context=None): context = {} if is_recruiter(request.user): employer = request.user.recruiter.employer form_class = EventForm elif is_campus_org(request.user): form_class = CampusOrgEventForm context['max_industries'] = s.EP_MAX_INDUSTRIES if request.method == 'POST': form = form_class(data=request.POST) if form.is_valid(): event = form.save(commit=False) event.owner = request.user event.save() form.save_m2m() if event.type.name == "Rolling Deadline": event.start_datetime = datetime.now() - timedelta(weeks=1) event.end_datetime = datetime.now() + timedelta(weeks=1000) event.save() elif event.type.name == "Hard Deadline": event.start_datetime = event.end_datetime event.save() if is_recruiter(request.user): event.attending_employers.add(employer) # Update index employer.save() notify_about_event(event, "new_event", event.attending_employers.all()) # Update index event.save() return HttpResponseRedirect(reverse('event_page', kwargs={'id':event.id, 'slug':event.slug})) else: form = form_class(initial={ 'start_datetime': datetime.now() + timedelta(minutes=30), 'end_datetime': datetime.now() + timedelta(hours=1, minutes=30), }) context['hours'] = map(lambda x,y: str(x) + y, [12] + range(1,13) + range(1,12), ['am']*12 + ['pm']*12) context['form'] = form context['today'] = datetime.now().strftime('%m/%d/%Y') context['event_scheduler_date'] = datetime.now().strftime('%m/%d/%Y') context.update(extra_context or {}) return context