def event_edit(request, event_ident): try: event = Event.get_by_ident(event_ident) tasks = event.task_set.order_by('role__name') except ObjectDoesNotExist: raise Http404("No event found matching the query.") if request.method == 'GET': event_form = EventForm(prefix='event', instance=event) task_form = TaskForm(prefix='task', initial={'event': event}) elif request.method == 'POST': event_form = EventForm(request.POST, prefix='event', instance=event) task_form = TaskForm(request.POST, prefix='task', initial={'event': event}) if "submit" in request.POST and event_form.is_valid(): event_form.save() return redirect(event) if "add" in request.POST and task_form.is_valid(): task_form.save() context = {'title': 'Edit Event {0}'.format(event.get_ident()), 'event_form': event_form, 'object': event, 'model': Event, 'tasks': tasks, 'task_form': task_form, 'form_helper': bootstrap_helper_without_form} return render(request, 'workshops/event_edit_form.html', context)
def validate_event(request, event_ident): '''Check the event's home page *or* the specified URL (for testing).''' page_url, error_messages = None, [] event = Event.get_by_ident(event_ident) github_url = request.GET.get('url', None) # for manual override if github_url is None: github_url = event.url if github_url is not None: page_url = github_url.replace( 'github.com', 'raw.githubusercontent.com').rstrip('/') + '/gh-pages/index.html' response = requests.get(page_url) if response.status_code != 200: error_messages.append( 'Request for {0} returned status code {1}'.format( page_url, response.status_code)) else: valid, error_messages = check_file(page_url, response.text) context = { 'title': 'Validate Event {0}'.format(event), 'event': event, 'page': page_url, 'error_messages': error_messages } return render(request, 'workshops/validate_event.html', context)
def event_details(request, event_ident): '''List details of a particular event.''' event = Event.get_by_ident(event_ident) tasks = Task.objects.filter(event__id=event.id).order_by('role__name') context = {'title' : 'Event {0}'.format(event), 'event' : event, 'tasks' : tasks} return render(request, 'workshops/event.html', context)
def event_delete(request, event_ident): """Mark event as deleted. Additionally mark tasks pointing at that event as deleted, too.""" try: event = Event.get_by_ident(event_ident) tasks = event.task_set except ObjectDoesNotExist: raise Http404("No event found matching the query.") tasks.update(deleted=True) event.deleted = True event.save() return redirect(reverse('all_events'))
def validate_event(request, event_ident): '''Check the event's home page *or* the specified URL (for testing).''' page_url, error_messages = None, [] event = Event.get_by_ident(event_ident) github_url = request.GET.get('url', None) # for manual override if github_url is None: github_url = event.url if github_url is not None: page_url = github_url.replace('github.com', 'raw.githubusercontent.com').rstrip('/') + '/gh-pages/index.html' response = requests.get(page_url) if response.status_code != 200: error_messages.append('Request for {0} returned status code {1}'.format(page_url, response.status_code)) else: error_messages = check_file(page_url, response.text) context = {'title' : 'Validate Event {0}'.format(event), 'event' : event, 'page' : page_url, 'error_messages' : error_messages} return render(request, 'workshops/validate_event.html', context)