コード例 #1
0
ファイル: views.py プロジェクト: MelissaNaomi/econvenor
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,
                  })
コード例 #2
0
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
                  })
コード例 #3
0
ファイル: views.py プロジェクト: funkybob/econvenor
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,
                  })
コード例 #4
0
ファイル: views.py プロジェクト: criptoverso/econvenor
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
                  })
コード例 #5
0
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
        })
コード例 #6
0
ファイル: views.py プロジェクト: criptoverso/econvenor
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,
                  })
コード例 #7
0
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,
    })
コード例 #8
0
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
        })
コード例 #9
0
ファイル: views.py プロジェクト: criptoverso/econvenor
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
                  })
コード例 #10
0
ファイル: views.py プロジェクト: criptoverso/econvenor
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
                  })
コード例 #11
0
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,
        })
コード例 #12
0
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,
                  })
コード例 #13
0
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,
                  })
コード例 #14
0
def welcome(request):
    group = get_current_group(request)
    if group == None:
        return HttpResponseRedirect(reverse('index'))

    return render(request, 'welcome.html', {
        'group': group,
    })
コード例 #15
0
ファイル: views.py プロジェクト: MelissaNaomi/econvenor
def welcome(request):
    group = get_current_group(request)
    if group == None:	
        return HttpResponseRedirect(reverse('index'))

    return render(request, 'welcome.html', {
                  'group': group,    
                  })
コード例 #16
0
ファイル: views.py プロジェクト: tysonblacker/econvenor
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,
                  })
コード例 #17
0
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
コード例 #18
0
ファイル: views.py プロジェクト: MelissaNaomi/econvenor
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
コード例 #19
0
ファイル: views.py プロジェクト: funkybob/econvenor
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,
                  })
コード例 #20
0
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,
    })
コード例 #21
0
ファイル: views.py プロジェクト: MelissaNaomi/econvenor
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,
                  })
コード例 #22
0
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,
    })
コード例 #23
0
ファイル: views.py プロジェクト: criptoverso/econvenor
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,
                  })
コード例 #24
0
ファイル: views.py プロジェクト: criptoverso/econvenor
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,
                  })
コード例 #25
0
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,
                  })
コード例 #26
0
ファイル: views.py プロジェクト: MelissaNaomi/econvenor
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,
                  })
コード例 #27
0
ファイル: views.py プロジェクト: proitconsult/econvenor
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})
コード例 #28
0
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,
                  })
                  
コード例 #29
0
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,
    })
コード例 #30
0
ファイル: views.py プロジェクト: proitconsult/econvenor
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},
    )
コード例 #31
0
ファイル: views.py プロジェクト: proitconsult/econvenor
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},
    )
コード例 #32
0
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,
        })
コード例 #33
0
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
        })
コード例 #34
0
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,
        })
コード例 #35
0
ファイル: views.py プロジェクト: MelissaNaomi/econvenor
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
コード例 #36
0
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
コード例 #37
0
ファイル: views.py プロジェクト: MelissaNaomi/econvenor
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
コード例 #38
0
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