def minutes_distribute(request, meeting_id): group = get_current_group(request) if group == None: return HttpResponseRedirect(reverse('index')) meeting = Meeting.objects.get(pk=int(meeting_id)) if meeting.group != group: return HttpResponseRedirect(reverse('index')) doc_type = 'minutes' participants = Participant.lists.active().filter(group=group) pages = create_pdf(request, group, meeting, doc_type) if request.method == "POST": if 'distribute_button' in request.POST: if request.POST['distribute_button']=='distribute': undraft_tasks_and_decisions(group, meeting) distribute_pdf(request, group, meeting, doc_type) archive_meeting(request, group, meeting_id=meeting_id) return HttpResponseRedirect(reverse('minutes-sent', args=(meeting_id,))) menu = {'parent': 'meetings', 'child': 'current_meetings', 'tips': 'review_minutes'} return render(request, 'document_distribute.html', { 'menu': menu, 'doc_type': doc_type, 'meeting_id': meeting_id, 'pages': pages, 'participants': participants, })
def participant_edit(request, participant_id): group = get_current_group(request) if group == None: return HttpResponseRedirect(reverse('index')) participant = Participant.objects.get(pk=int(participant_id)) if participant.group != group: return HttpResponseRedirect(reverse('index')) if request.method == "POST": if request.POST['button']=='delete_participant': participant.delete() return HttpResponseRedirect(reverse('participant-list')) elif request.POST['button'] == 'save_participant': form = EditParticipantForm(group, request.POST, instance=participant, label_suffix='') if form.is_valid(): form.save(group) return HttpResponseRedirect(reverse('participant-list')) else: form = EditParticipantForm(group, instance=participant, label_suffix='') menu = {'parent': 'participants', 'child': 'manage_participants', 'tips': 'edit_participant' } return render(request, 'participant_edit.html', { 'menu': menu, 'form': form, 'participant_id': participant_id })
def task_edit(request, task_id): group = get_current_group(request) if group == None: return HttpResponseRedirect(reverse('index')) task = Task.objects.get(pk=int(task_id)) if task.group != group: return HttpResponseRedirect(reverse('index')) page_heading = task if request.method == "POST": if request.POST['button']: if request.POST['button']=='delete_task': task.delete() return HttpResponseRedirect(reverse('task-list')) else: form = EditTaskForm(group, request.POST, instance=task, label_suffix='') # import pdb; pdb.set_trace() if form.is_valid(): form.save(group) return HttpResponseRedirect(reverse('task-list')) else: form = EditTaskForm(group, instance=task, label_suffix='') menu = {'parent': 'tasks'} return render(request, 'task_edit.html', { 'menu': menu, 'form': form, 'page_heading': page_heading, 'task_id': task_id, })
def task_list(request): group = get_current_group(request) if group == None: return HttpResponseRedirect(reverse('index')) tasks = Task.lists.incomplete_tasks().filter(group=group) selection = 'incomplete' table_headings = ('Description', 'Assigned to', 'Deadline',) if request.method == "POST": if request.POST['button']=='completed': tasks = Task.lists.completed_tasks().filter(group=group) selection = 'completed' table_headings = ('Description', 'Assigned to', 'Completed on',) elif request.POST['button']=='incomplete': tasks = Task.lists.incomplete_tasks().filter(group=group) selection = 'incomplete' elif request.POST['button']=='overdue': tasks = Task.lists.overdue_tasks().filter(group=group) selection = 'overdue' menu = {'parent': 'tasks', 'child': 'manage_tasks', 'tips': 'manage_tasks' } return render(request, 'task_list.html', { 'menu': menu, 'tasks': tasks, 'selection': selection, 'table_headings': table_headings })
def meeting_list_archive(request): group = get_current_group(request) if group == None: return HttpResponseRedirect(reverse('index')) meetings = Meeting.lists.archived_meetings().filter(group=group) page_heading = 'Archived meetings' table_headings = ( 'Date', 'Meeting Number', 'Meeting type', '', '', '', ) if request.method == "POST": if request.POST['button'][:6] == 'delete': delete_meeting(request, group) if request.POST['button'][:9] == 'unarchive': unarchive_meeting(request, group) meetings = Meeting.lists.archived_meetings().filter(group=group) menu = { 'parent': 'meetings', 'child': 'archived_meetings', 'tips': 'archived_meetings' } return render( request, 'meeting_list_archive.html', { 'menu': menu, 'meetings': meetings, 'page_heading': page_heading, 'table_headings': table_headings })
def meeting_add(request): group = get_current_group(request) if group == None: return HttpResponseRedirect(reverse('index')) if request.method == "POST": form = NewMeetingForm(group, request.POST, label_suffix='') if form.is_valid() : # save the data meeting = form.save(group) # create a blank first agenda item and link it to the meeting first_item = Item(title='New item', item_no=1, group=group) meeting.item_set.add(first_item) # get the meeting id to enable the page redirect meeting_id = meeting.id return HttpResponseRedirect(reverse('agenda-edit', args=(meeting_id,))) else: form = NewMeetingForm(group, label_suffix='') menu = {'parent': 'meetings', 'child': 'new_meeting', 'tips': 'new_meeting' } return render(request, 'meeting_add.html', { 'menu': menu, 'form': form, })
def meeting_add(request): group = get_current_group(request) if group == None: return HttpResponseRedirect(reverse('index')) if request.method == "POST": form = NewMeetingForm(group, request.POST, label_suffix='') if form.is_valid(): # save the data meeting = form.save(group) # create a blank first agenda item and link it to the meeting first_item = Item(title='New item', item_no=1, group=group) meeting.item_set.add(first_item) # get the meeting id to enable the page redirect meeting_id = meeting.id return HttpResponseRedirect( reverse('agenda-edit', args=(meeting_id, ))) else: form = NewMeetingForm(group, label_suffix='') menu = { 'parent': 'meetings', 'child': 'new_meeting', 'tips': 'new_meeting' } return render(request, 'meeting_add.html', { 'menu': menu, 'form': form, })
def meeting_list_current(request): group = get_current_group(request) if group == None: return HttpResponseRedirect(reverse('index')) meetings = Meeting.lists.current_meetings().filter(group=group) page_heading = 'Current meetings' table_headings = ( 'Date', 'Meeting Number', 'Agenda sent', 'Minutes sent', 'Next action', 'Other actions', ) if request.method == "POST": if request.POST['button'][:6] == 'delete': delete_meeting(request, group) if request.POST['button'][:7] == 'archive': archive_meeting(request, group) meetings = Meeting.lists.current_meetings().filter(group=group) menu = { 'parent': 'meetings', 'child': 'current_meetings', 'tips': 'current_meetings' } return render( request, 'meeting_list_current.html', { 'menu': menu, 'meetings': meetings, 'page_heading': page_heading, 'table_headings': table_headings })
def meeting_list_current(request): group = get_current_group(request) if group == None: return HttpResponseRedirect(reverse('index')) meetings = Meeting.lists.current_meetings().filter(group=group) page_heading = 'Current meetings' table_headings = ('Date', 'Meeting Number', 'Agenda sent', 'Minutes sent', 'Next action', 'Other actions', ) if request.method == "POST": if request.POST['button'][:6] == 'delete': delete_meeting(request, group) if request.POST['button'][:7] == 'archive': archive_meeting(request, group) meetings = Meeting.lists.current_meetings().filter(group=group) menu = {'parent': 'meetings', 'child': 'current_meetings', 'tips': 'current_meetings' } return render(request, 'meeting_list_current.html', { 'menu': menu, 'meetings': meetings, 'page_heading': page_heading, 'table_headings': table_headings })
def meeting_list_archive(request): group = get_current_group(request) if group == None: return HttpResponseRedirect(reverse('index')) meetings = Meeting.lists.archived_meetings().filter(group=group) page_heading = 'Archived meetings' table_headings = ('Date', 'Meeting Number', 'Meeting type', '', '', '', ) if request.method == "POST": if request.POST['button'][:6] == 'delete': delete_meeting(request, group) if request.POST['button'][:9] == 'unarchive': unarchive_meeting(request, group) meetings = Meeting.lists.archived_meetings().filter(group=group) menu = {'parent': 'meetings', 'child': 'archived_meetings', 'tips': 'archived_meetings' } return render(request, 'meeting_list_archive.html', { 'menu': menu, 'meetings': meetings, 'page_heading': page_heading, 'table_headings': table_headings })
def minutes_distribute(request, meeting_id): group = get_current_group(request) if group == None: return HttpResponseRedirect(reverse('index')) meeting = Meeting.objects.get(pk=int(meeting_id)) if meeting.group != group: return HttpResponseRedirect(reverse('index')) doc_type = 'minutes' participants = Participant.lists.active().filter(group=group) pages = create_pdf(request, group, meeting, doc_type) if request.method == "POST": if 'distribute_button' in request.POST: if request.POST['distribute_button'] == 'distribute': undraft_tasks_and_decisions(group, meeting) distribute_pdf(request, group, meeting, doc_type) archive_meeting(request, group, meeting_id=meeting_id) return HttpResponseRedirect( reverse('minutes-sent', args=(meeting_id, ))) menu = { 'parent': 'meetings', 'child': 'current_meetings', 'tips': 'review_minutes' } return render( request, 'document_distribute.html', { 'menu': menu, 'doc_type': doc_type, 'meeting_id': meeting_id, 'pages': pages, 'participants': participants, })
def participant_list(request): group = get_current_group(request) if group == None: return HttpResponseRedirect(reverse('index')) participants = Participant.lists.active().filter(group=group) selection = 'active' table_headings = ('Given name', 'Family name', 'Receiving reminders?', ) if request.method == "POST": if request.POST['button']=='inactive': participants = Participant.lists.inactive().filter(group=group) selection = 'inactive' elif request.POST['button']=='former': participants = Participant.lists.former().filter(group=group) selection = 'former' menu = {'parent': 'participants', 'child': 'manage_participants', 'tips': 'manage_participants' } return render(request, 'participant_list.html', { 'menu': menu, 'participants': participants, 'selection': selection, 'table_headings': table_headings, })
def dashboard(request): group = get_current_group(request) if group == None: return HttpResponseRedirect(reverse('index')) last_meeting = Meeting.lists.past_meetings().filter(group=group).last() next_meeting = Meeting.lists.future_meetings().filter(group=group).first() if last_meeting: days_since_last_meeting = (date.today() - last_meeting.date_scheduled)\ .days else: days_since_last_meeting = None top_overdue_tasks = Task.lists.overdue_tasks().filter(group=group)[:6] top_pending_tasks = Task.lists.pending_tasks().filter(group=group)[:6] task_headings = ('Description', 'Deadline', ) menu = {'parent': 'dashboard', 'tips': 'dashboard'} return render(request, 'dashboard.html', { 'menu': menu, 'group': group, 'last_meeting': last_meeting, 'days_since_last_meeting': days_since_last_meeting, 'next_meeting': next_meeting, 'top_overdue_tasks': top_overdue_tasks, 'top_pending_tasks': top_pending_tasks, 'task_headings': task_headings, })
def welcome(request): group = get_current_group(request) if group == None: return HttpResponseRedirect(reverse('index')) return render(request, 'welcome.html', { 'group': group, })
def account(request): group = get_current_group(request) if group == None: return HttpResponseRedirect(reverse('index')) menu = {'parent': 'account'} return render(request, 'account_settings.html', { 'menu': menu, 'group': group, })
def minutes_print(request, meeting_id): group = get_current_group(request) if group == None: return HttpResponseRedirect(reverse('index')) meeting = Meeting.objects.get(pk=int(meeting_id)) if meeting.group != group: return HttpResponseRedirect(reverse('index')) pdf_contents = get_pdf_preview_contents(request, group, meeting, 'minutes') file_name = group.slug + '_minutes_' + meeting.meeting_no + '.pdf' response = HttpResponse(pdf_contents, content_type='application/pdf') response['Content-Disposition'] = 'attachment; filename=' + file_name return response
def decision_list(request): group = get_current_group(request) if group == None: return HttpResponseRedirect(reverse('index')) decisions = Decision.lists.all_decisions().filter(group=group) table_headings = ('Meeting no', 'Item no', 'Decision', ) menu = {'parent': 'decisions', 'child': 'view_decisions'} return render(request, 'decision_list.html', { 'menu': menu, 'decisions': decisions, 'table_headings': table_headings, })
def minutes_sent(request, meeting_id): group = get_current_group(request) if group == None: return HttpResponseRedirect(reverse('index')) meeting = Meeting.objects.get(pk=int(meeting_id)) if meeting.group != group: return HttpResponseRedirect(reverse('index')) doc_type = 'minutes' meeting_no = meeting.meeting_no menu = {'parent': 'meetings'} return render(request, 'document_sent.html', { 'menu': menu, 'meeting_no': meeting_no, 'doc_type': doc_type, })
def task_add(request): group = get_current_group(request) if group == None: return HttpResponseRedirect(reverse('index')) if request.method == "POST": form = AddTaskForm(group, request.POST, label_suffix='') if form.is_valid(): form.save(group) return HttpResponseRedirect(reverse('task-list')) else: form = AddTaskForm(group, label_suffix='') menu = {'parent': 'tasks', 'child': 'new_task'} return render(request, 'task_add.html', { 'menu': menu, 'form': form, })
def group_edit(request): group = get_current_group(request) if group == None: return HttpResponseRedirect(reverse('index')) if request.method == "POST": form = GroupDetailsForm(request.POST, instance=group, label_suffix='') if form.is_valid(): form.save() snapshot_group_details(group) return HttpResponseRedirect(reverse('account')) else: form = GroupDetailsForm(instance=group, label_suffix='') menu = {'parent': 'account'} return render(request, 'group_edit.html', { 'menu': menu, 'form': form, })
def participant_view(request, participant_id): group = get_current_group(request) if group == None: return HttpResponseRedirect(reverse('index')) participant = Participant.objects.get(pk=int(participant_id)) if participant.group != group: return HttpResponseRedirect(reverse('index')) incomplete_tasks = Task.lists.incomplete_tasks().\ filter(participant=participant) table_headings = ('Description', 'Deadline',) menu = {'parent': 'participants', 'child': 'manage_participants'} return render(request, 'participant_view.html', { 'menu': menu, 'participant': participant, 'table_headings': table_headings, 'incomplete_tasks': incomplete_tasks, })
def minutes_view(request, meeting_id): group = get_current_group(request) if group == None: return HttpResponseRedirect(reverse('index')) meeting = Meeting.objects.get(pk=int(meeting_id)) if meeting.group != group: return HttpResponseRedirect(reverse('index')) doc_type = 'minutes' version = meeting.current_minutes_version base_file_name = get_base_file_name(request, group, meeting, 'minutes') pages = create_images_from_pdf(base_file_name, version=version) menu = {'parent': 'meetings'} return render(request, 'document_view.html', { 'menu': menu, 'doc_type': doc_type, 'meeting_id': meeting_id, 'pages': pages, })
def meeting_add(request): group = get_current_group(request) if group == None: return HttpResponseRedirect(reverse("index")) if request.method == "POST": form = NewMeetingForm(group, request.POST, label_suffix="") if form.is_valid(): # save the data meeting = form.save(group) # create a blank first agenda item and link it to the meeting first_item = Item(title="New item", item_no=1, group=group) meeting.item_set.add(first_item) # get the meeting id to enable the page redirect meeting_id = meeting.id return HttpResponseRedirect(reverse("agenda-edit", args=(meeting_id,))) else: form = NewMeetingForm(group, label_suffix="") menu = {"parent": "meetings", "child": "new_meeting"} return render(request, "meeting_add.html", {"menu": menu, "form": form})
def decision_list(request): group = get_current_group(request) if group == None: return HttpResponseRedirect(reverse('index')) decisions = Decision.lists.all_decisions().filter(group=group) table_headings = ( 'Meeting no', 'Item no', 'Decision', ) menu = { 'parent': 'decisions', 'child': 'view_decisions', 'tips': 'decisions' } return render(request, 'decision_list.html', { 'menu': menu, 'decisions': decisions, 'table_headings': table_headings, })
def meeting_list_current(request): group = get_current_group(request) if group == None: return HttpResponseRedirect(reverse("index")) meetings = Meeting.lists.current_meetings().filter(group=group) page_heading = "Current meetings" table_headings = ("Date", "Meeting Number", "Agenda sent", "Minutes sent", "Next action", "Other actions") if request.method == "POST": if request.POST["button"][:6] == "delete": delete_meeting(request, group) if request.POST["button"][:7] == "archive": archive_meeting(request, group) meetings = Meeting.lists.current_meetings().filter(group=group) menu = {"parent": "meetings", "child": "current_meetings"} return render( request, "meeting_list_current.html", {"menu": menu, "meetings": meetings, "page_heading": page_heading, "table_headings": table_headings}, )
def meeting_list_archive(request): group = get_current_group(request) if group == None: return HttpResponseRedirect(reverse("index")) meetings = Meeting.lists.archived_meetings().filter(group=group) page_heading = "Archived meetings" table_headings = ("Date", "Meeting Number", "Meeting type", "", "", "") if request.method == "POST": if request.POST["button"][:6] == "delete": delete_meeting(request, group) if request.POST["button"][:9] == "unarchive": unarchive_meeting(request, group) meetings = Meeting.lists.archived_meetings().filter(group=group) menu = {"parent": "meetings", "child": "archived_meetings"} return render( request, "meeting_list_archive.html", {"menu": menu, "meetings": meetings, "page_heading": page_heading, "table_headings": table_headings}, )
def minutes_view(request, meeting_id): group = get_current_group(request) if group == None: return HttpResponseRedirect(reverse('index')) meeting = Meeting.objects.get(pk=int(meeting_id)) if meeting.group != group: return HttpResponseRedirect(reverse('index')) doc_type = 'minutes' version = meeting.current_minutes_version base_file_name = get_base_file_name(request, group, meeting, 'minutes') pages = create_images_from_pdf(base_file_name, version=version) menu = {'parent': 'meetings'} return render( request, 'document_view.html', { 'menu': menu, 'doc_type': doc_type, 'meeting_id': meeting_id, 'pages': pages, })
def task_list(request): group = get_current_group(request) if group == None: return HttpResponseRedirect(reverse('index')) tasks = Task.lists.incomplete_tasks().filter(group=group) selection = 'incomplete' table_headings = ( 'Description', 'Assigned to', 'Deadline', ) if request.method == "POST": if request.POST['button'] == 'completed': tasks = Task.lists.completed_tasks().filter(group=group) selection = 'completed' table_headings = ( 'Description', 'Assigned to', 'Completed on', ) elif request.POST['button'] == 'incomplete': tasks = Task.lists.incomplete_tasks().filter(group=group) selection = 'incomplete' elif request.POST['button'] == 'overdue': tasks = Task.lists.overdue_tasks().filter(group=group) selection = 'overdue' menu = {'parent': 'tasks', 'child': 'manage_tasks', 'tips': 'manage_tasks'} return render( request, 'task_list.html', { 'menu': menu, 'tasks': tasks, 'selection': selection, 'table_headings': table_headings })
def task_edit(request, task_id): group = get_current_group(request) if group == None: return HttpResponseRedirect(reverse('index')) task = Task.objects.get(pk=int(task_id)) if task.group != group: return HttpResponseRedirect(reverse('index')) page_heading = task if request.method == "POST": if request.POST['button']: if request.POST['button'] == 'delete_task': task.delete() return HttpResponseRedirect(reverse('task-list')) else: form = EditTaskForm(group, request.POST, instance=task, label_suffix='') # import pdb; pdb.set_trace() if form.is_valid(): form.save(group) return HttpResponseRedirect(reverse('task-list')) else: form = EditTaskForm(group, instance=task, label_suffix='') menu = {'parent': 'tasks', 'child': 'manage_tasks', 'tips': 'edit_task'} return render( request, 'task_edit.html', { 'menu': menu, 'form': form, 'page_heading': page_heading, 'task_id': task_id, })
def minutes_edit(request, meeting_id): group = get_current_group(request) if group == None: return HttpResponseRedirect(reverse('index')) meeting = Meeting.objects.get(pk=int(meeting_id)) if meeting.group != group: return HttpResponseRedirect(reverse('index')) doc_type = 'minutes' request_type = 'refresh' decisions = meeting.decision_set.filter(group=group).\ order_by('item', 'decision_no') items = meeting.item_set.filter(group=group).order_by('item_no') tasks = meeting.task_set.filter(group=group).\ order_by('item', 'task_no') completed_tasks_list = get_completed_tasks_list(group=group, meeting=meeting, doc_type='minutes') incomplete_tasks_list = Task.lists.incomplete_tasks().filter(group=group) new_tasks = Task.lists.incomplete_tasks().filter(group=group, meeting=meeting) if request.method == "POST" and 'ajax_button' in request.POST: request_type = 'ajax' # before changing any data, save everything if request.POST['ajax_button'] != 'page_refresh': save_formlist(request, group, decisions, 'decisions', doc_type) save_formlist(request, group, items, 'items', doc_type) save_formlist(request, group, tasks, 'tasks', doc_type) save_meeting_form(request, group, meeting, doc_type) save_next_meeting_form(request, group, meeting) # now change what needs to be changed if request.POST['ajax_button']=='clear_minutes': clear_minutes(request, group, meeting, decisions, items, tasks) if request.POST['ajax_button'][:12]=='add_decision': add_decision(request, group, meeting) if request.POST['ajax_button']=='add_item': add_item(group, meeting, items, 'minutes') if request.POST['ajax_button'][:8]=='add_task': add_task(request, group, meeting) if request.POST['ajax_button'][:15]=='delete_decision': delete_decision(request, group, meeting) if request.POST['ajax_button'][:11]=='delete_item': delete_item(request, group, meeting) if request.POST['ajax_button'][:11]=='delete_task': delete_task(request, group, meeting) decisions = meeting.decision_set.filter(group=group).\ order_by('item', 'decision_no') items = meeting.item_set.filter(group=group).order_by('item_no') tasks = meeting.task_set.filter(group=group).\ order_by('item', 'task_no') decision_formlist = build_formlist(group, decisions, 'decisions', 'minutes') item_formlist = build_formlist(group, items, 'items', 'minutes') task_formlist = build_formlist(group, tasks, 'tasks', 'minutes') item_count = items.count() meeting_duration = get_formatted_meeting_duration(meeting) meeting_end_time = calculate_meeting_end_time(meeting) meeting_form = MinutesMeetingForm(group, instance=meeting, label_suffix='') next_meeting_form = NextMeetingForm(group, instance=meeting, label_suffix='') templates = get_templates(request_type, 'minutes') responses = [] menu = {'parent': 'meetings', 'child': 'current_meetings', 'tips': 'create_minutes'} for template in templates: response = render(request, template, { 'menu': menu, 'doc_type': doc_type, 'meeting_id': meeting_id, 'meeting': meeting, 'meeting_duration': meeting_duration, 'meeting_end_time': meeting_end_time, 'completed_tasks_list': completed_tasks_list, 'incomplete_tasks_list': incomplete_tasks_list, 'meeting_form': meeting_form, 'next_meeting_form': next_meeting_form, 'item_formlist': item_formlist, 'task_formlist': task_formlist, 'decision_formlist': decision_formlist, 'decisions': decisions, 'tasks': tasks, }) responses.append(response) response = get_response(responses, request_type) return response
def agenda_edit(request, meeting_id): group = get_current_group(request) if group == None: return HttpResponseRedirect(reverse('index')) meeting = Meeting.objects.get(pk=int(meeting_id)) if meeting.group != group: return HttpResponseRedirect(reverse('index')) doc_type = 'agenda' request_type = 'refresh' task_list_headings = ('Description', 'Assigned to', 'Deadline') items = meeting.item_set.filter(group=group).order_by('item_no') overdue_tasks_list = get_overdue_tasks_list(group=group, meeting=meeting, doc_type=doc_type) pending_tasks_list = get_outstanding_tasks_list(group=group, meeting=meeting, doc_type=doc_type) completed_tasks_list = get_completed_tasks_list(group=group, meeting=meeting, doc_type=doc_type) if request.method == "POST" and 'ajax_button' in request.POST: request_type = 'ajax' if request.POST['ajax_button'] != 'page_refresh': save_formlist(request, group, items, 'items', doc_type) meeting_form = save_meeting_form(request, group, meeting, doc_type) if request.POST['ajax_button'] == 'add_item': add_item(group, meeting, items, doc_type) if request.POST['ajax_button'][0:11] == 'delete_item': delete_item(request, group, meeting) if request.POST['ajax_button'] == 'move_item': move_item(request, group, meeting) items = meeting.item_set.filter(group=group).order_by('item_no') item_formlist = build_formlist(group, items, 'items', doc_type) meeting_form = AgendaMeetingForm(group=group, instance=meeting, label_suffix='') meeting_duration = get_formatted_meeting_duration(meeting_id) meeting_end_time = calculate_meeting_end_time(meeting) templates = get_templates(request_type, doc_type) responses = [] menu = { 'parent': 'meetings', 'child': 'current_meetings', 'tips': 'create_agenda' } for template in templates: part_response = render( request, template, { 'menu': menu, 'completed_tasks_list': completed_tasks_list, 'doc_type': doc_type, 'group': group, 'item_formlist': item_formlist, 'items': items, 'meeting': meeting, 'meeting_duration': meeting_duration, 'meeting_end_time': meeting_end_time, 'meeting_form': meeting_form, 'meeting_id': meeting_id, 'overdue_tasks_list': overdue_tasks_list, 'pending_tasks_list': pending_tasks_list, 'task_list_headings': task_list_headings, }) responses.append(part_response) response = get_response(responses, request_type) return response
def agenda_edit(request, meeting_id): group = get_current_group(request) if group == None: return HttpResponseRedirect(reverse('index')) meeting = Meeting.objects.get(pk=int(meeting_id)) if meeting.group != group: return HttpResponseRedirect(reverse('index')) doc_type = 'agenda' request_type = 'refresh' task_list_headings = ('Description', 'Assigned to', 'Deadline') items = meeting.item_set.filter(group=group).order_by('item_no') overdue_tasks_list = get_overdue_tasks_list(group=group, meeting=meeting, doc_type=doc_type) pending_tasks_list = get_outstanding_tasks_list(group=group, meeting=meeting, doc_type=doc_type) completed_tasks_list = get_completed_tasks_list(group=group, meeting=meeting, doc_type=doc_type) if request.method == "POST" and 'ajax_button' in request.POST: request_type = 'ajax' if request.POST['ajax_button'] != 'page_refresh': save_formlist(request, group, items, 'items', doc_type) meeting_form = save_meeting_form(request, group, meeting, doc_type) if request.POST['ajax_button']=='add_item': add_item(group, meeting, items, doc_type) if request.POST['ajax_button'][0:11] =='delete_item': delete_item(request, group, meeting) if request.POST['ajax_button'] == 'move_item': move_item(request, group, meeting) items = meeting.item_set.filter(group=group).order_by('item_no') item_formlist = build_formlist(group, items, 'items', doc_type) meeting_form = AgendaMeetingForm(group=group, instance=meeting, label_suffix='') meeting_duration = get_formatted_meeting_duration(meeting_id) meeting_end_time = calculate_meeting_end_time(meeting) templates = get_templates(request_type, doc_type) responses = [] menu = {'parent': 'meetings', 'child': 'current_meetings', 'tips': 'create_agenda'} for template in templates: part_response = render(request, template, { 'menu': menu, 'completed_tasks_list': completed_tasks_list, 'doc_type': doc_type, 'group': group, 'item_formlist': item_formlist, 'items': items, 'meeting': meeting, 'meeting_duration': meeting_duration, 'meeting_end_time': meeting_end_time, 'meeting_form': meeting_form, 'meeting_id': meeting_id, 'overdue_tasks_list': overdue_tasks_list, 'pending_tasks_list': pending_tasks_list, 'task_list_headings': task_list_headings, }) responses.append(part_response) response = get_response(responses, request_type) return response
def minutes_edit(request, meeting_id): group = get_current_group(request) if group == None: return HttpResponseRedirect(reverse('index')) meeting = Meeting.objects.get(pk=int(meeting_id)) if meeting.group != group: return HttpResponseRedirect(reverse('index')) doc_type = 'minutes' request_type = 'refresh' decisions = meeting.decision_set.filter(group=group).\ order_by('item', 'decision_no') items = meeting.item_set.filter(group=group).order_by('item_no') tasks = meeting.task_set.filter(group=group).\ order_by('item', 'task_no') completed_tasks_list = get_completed_tasks_list(group=group, meeting=meeting, doc_type='minutes') incomplete_tasks_list = Task.lists.incomplete_tasks().filter(group=group) new_tasks = Task.lists.incomplete_tasks().filter(group=group, meeting=meeting) if request.method == "POST" and 'ajax_button' in request.POST: request_type = 'ajax' # before changing any data, save everything if request.POST['ajax_button'] != 'page_refresh': save_formlist(request, group, decisions, 'decisions', doc_type) save_formlist(request, group, items, 'items', doc_type) save_formlist(request, group, tasks, 'tasks', doc_type) save_meeting_form(request, group, meeting, doc_type) save_next_meeting_form(request, group, meeting) # now change what needs to be changed if request.POST['ajax_button'] == 'clear_minutes': clear_minutes(request, group, meeting, decisions, items, tasks) if request.POST['ajax_button'][:12] == 'add_decision': add_decision(request, group, meeting) if request.POST['ajax_button'] == 'add_item': add_item(group, meeting, items, 'minutes') if request.POST['ajax_button'][:8] == 'add_task': add_task(request, group, meeting) if request.POST['ajax_button'][:15] == 'delete_decision': delete_decision(request, group, meeting) if request.POST['ajax_button'][:11] == 'delete_item': delete_item(request, group, meeting) if request.POST['ajax_button'][:11] == 'delete_task': delete_task(request, group, meeting) decisions = meeting.decision_set.filter(group=group).\ order_by('item', 'decision_no') items = meeting.item_set.filter(group=group).order_by('item_no') tasks = meeting.task_set.filter(group=group).\ order_by('item', 'task_no') decision_formlist = build_formlist(group, decisions, 'decisions', 'minutes') item_formlist = build_formlist(group, items, 'items', 'minutes') task_formlist = build_formlist(group, tasks, 'tasks', 'minutes') item_count = items.count() meeting_duration = get_formatted_meeting_duration(meeting) meeting_end_time = calculate_meeting_end_time(meeting) meeting_form = MinutesMeetingForm(group, instance=meeting, label_suffix='') next_meeting_form = NextMeetingForm(group, instance=meeting, label_suffix='') templates = get_templates(request_type, 'minutes') responses = [] menu = { 'parent': 'meetings', 'child': 'current_meetings', 'tips': 'create_minutes' } for template in templates: response = render( request, template, { 'menu': menu, 'doc_type': doc_type, 'meeting_id': meeting_id, 'meeting': meeting, 'meeting_duration': meeting_duration, 'meeting_end_time': meeting_end_time, 'completed_tasks_list': completed_tasks_list, 'incomplete_tasks_list': incomplete_tasks_list, 'meeting_form': meeting_form, 'next_meeting_form': next_meeting_form, 'item_formlist': item_formlist, 'task_formlist': task_formlist, 'decision_formlist': decision_formlist, 'decisions': decisions, 'tasks': tasks, }) responses.append(response) response = get_response(responses, request_type) return response