Пример #1
0
def edit(request, p_id, milestone_id):

    user = request.user
    project = get_object_or_404(Project, id = p_id)
    milestone = get_object_or_404(Milestone, id = milestone_id)
    users_in_project = project.get_users()

    if not checkperm(PERMISSIONS_MILESTONE_EDITDELETE, user, project, milestone) or milestone.project != project:
        return HttpResponseForbidden(_('Forbidden Access'))

    users_to_notify = utils.get_users_to_notify(project, PERMISSIONS_MILESTONE_VIEW)

    if request.method=='POST':
        form = NewMilestoneForm(utils.format_users_for_dropdown(user, users_to_notify), request.POST)

        if form.is_valid():

            user_id = int(form.cleaned_data['responsible'])
            if user_id != 0:
                milestone.responsible = get_object_or_404(User, id = user_id)
            else:
                milestone.responsible = None
                milestone.completion_date = None
            old_milestone_title = milestone.title
            milestone.title = form.cleaned_data['title']
            milestone.due_date = form.cleaned_data['due_date']
            milestone.send_notification_email = form.cleaned_data['send_notification_email']
            milestone.save()

            if milestone.send_notification_email:
                link_url = u"http://%s%s" % ( unicode(Site.objects.get_current()), urlresolvers.reverse('rancho.milestone.views.list', args = [p_id]))
                #link_url = u"http://%s%s" % ( unicode(Site.objects.get_current()), urlresolvers.reverse('rancho.message.views.read_add_comment', kwargs={'p_id': project.id, 'm_id':msg.id}),)
                if milestone.responsible: #just notify one person
                    notification.send([milestone.responsible], "milestone_updated", {'link_url': link_url, 'milestone': milestone, 'old_milestone_title': old_milestone_title})
                else: #notify entire project
                    notification.send(users_to_notify, "milestone_updated", {'link_url': link_url, 'milestone': milestone, 'old_milestone_title': old_milestone_title })

            events_log(user, 'U', milestone.title, milestone)
            request.user.message_set.create(message=_('Milestone successfully edited.'))
    else:
        responsible_index = 0
        if milestone.responsible:
            responsible_index = milestone.responsible.id
        data = {'title': milestone.title,
                'due_date': milestone.due_date.date(),
                'responsible': responsible_index,
                'send_notification_email': milestone.send_notification_email}
        form = NewMilestoneForm(utils.format_users_for_dropdown(user, users_in_project), data)

    context = {'project': project,
               'milestone': milestone,
               'newMilestone': form,
               }
    return render_to_response("milestone/edit_milestone.html", context, context_instance = RequestContext(request))
Пример #2
0
def create(request, p_id):

    user = request.user
    project = get_object_or_404(Project, id = p_id)
    users_in_project = project.get_users()

    if not checkperm(PERMISSIONS_MILESTONE_CREATE, user, project ):
        return HttpResponseForbidden(_('Forbidden Access'))

    users_to_notify = utils.get_users_to_notify(project, PERMISSIONS_MILESTONE_VIEW)

    if request.method == 'POST':
        form = NewMilestoneForm(utils.format_users_for_dropdown(user, users_to_notify), request.POST)

        if form.is_valid():
            mstone = form.save(user, project)

            if mstone.send_notification_email:
                #TODO: make a view milestone url to use here
                link_url = u"http://%s%s" % ( unicode(Site.objects.get_current()), urlresolvers.reverse('rancho.milestone.views.list', args = [p_id]))
                #link_url = u"http://%s%s" % ( unicode(Site.objects.get_current()), urlresolvers.reverse('rancho.message.views.read_add_comment', kwargs={'p_id': project.id, 'm_id':msg.id}),)
                if mstone.responsible: #just notify one person
                    notification.send([mstone.responsible], "milestone_new", {'link_url': link_url, 'milestone': mstone })
                else: #notify all users with perm
                    notification.send(users_to_notify, "milestone_new", {'link_url': link_url, 'milestone': mstone })

            events_log(user, 'A', mstone.title, mstone)
            request.user.message_set.create(message=_('Milestone "%s" successfully created.') % mstone.title)
            return HttpResponseRedirect(urlresolvers.reverse('rancho.milestone.views.list', args = [p_id]))

    else:
        form = NewMilestoneForm(utils.format_users_for_dropdown(user, users_in_project))

    context = { 'project': project,
               'newMilestone': form,
               }

    return render_to_response("milestone/create_milestone.html", context,
                                  context_instance=RequestContext(request))
Пример #3
0
def view_todo_list(request, p_id, todo_list_id):

    user = request.user
    project = get_object_or_404(Project, id = p_id)
    todo_list = get_object_or_404(ToDoList, id = todo_list_id)

    if not checkperm(PERMISSIONS_TODO_VIEW, user, project ):
        return HttpResponseForbidden(_('Forbidden Access'))

    users_in_project = project.get_users()
    context = {
               'users_in_project': utils.format_users_for_dropdown(user, users_in_project),
               'project': project,
               'todo_lists': [(todo_list, todo_list.get_todos())],
               'view_alone': True,
               }
    return render_to_response('todo/todos_list.html', context,
                              context_instance = RequestContext(request))
Пример #4
0
def list(request, p_id):
    user = request.user
    project = get_object_or_404(Project, id = p_id)

    if not checkperm(PERMISSIONS_TODO_VIEW, user, project ):
        return HttpResponseForbidden(_('Forbidden Access'))

    users_in_project = project.get_users()
    todo_list = ToDoList.objects.filter(project = project)
    context = {
        'users_in_project': utils.format_users_for_dropdown(user, users_in_project),
        'project': project,
        'todo_lists': [],
        }
    for l in todo_list:
        context['todo_lists'].append((l, l.get_todos()))


    return render_to_response('todo/todos_list.html', context,
                              context_instance = RequestContext(request))
Пример #5
0
def view_todo_list(request, p_id, todo_list_id):

    user = request.user
    project = get_object_or_404(Project, id=p_id)
    todo_list = get_object_or_404(ToDoList, id=todo_list_id)

    if not checkperm(PERMISSIONS_TODO_VIEW, user, project):
        return HttpResponseForbidden(_('Forbidden Access'))

    users_in_project = project.get_users()
    context = {
        'users_in_project':
        utils.format_users_for_dropdown(user, users_in_project),
        'project': project,
        'todo_lists': [(todo_list, todo_list.get_todos())],
        'view_alone': True,
    }
    return render_to_response('todo/todos_list.html',
                              context,
                              context_instance=RequestContext(request))
Пример #6
0
def edit_todo(request, p_id, todo_id):

    user = request.user
    project = get_object_or_404(Project, id=p_id)
    todo = get_object_or_404(ToDo, id=todo_id)
    todo_list = todo.todo_list

    if not checkperm(PERMISSIONS_TODO_EDITDELETE, user, project,
                     todo) or todo_list.project != project:
        return HttpResponseForbidden(_('Forbidden Access'))

    users_in_project = utils.format_users_for_dropdown(user,
                                                       project.get_users())
    context = {'project': project, 'todo': todo, 'todo_list': todo_list}
    if request.method == 'POST':
        edit_todo_form = EditToDoForm(users_in_project, request.POST)
        context['edit_todo_form'] = edit_todo_form
        if edit_todo_form.is_valid():
            user_id = int(edit_todo_form.cleaned_data['responsible'])
            if user_id != 0:
                todo.responsible = get_object_or_404(User, id=user_id)
            else:
                todo.responsible = None
            todo.description = edit_todo_form.cleaned_data['title']
            todo.save()

            events_log(user, 'U', todo.description, todo)
            request.user.message_set.create(
                message=_('ToDo item successfully updated.'))
        return render_to_response('todo/edit_todo.html',
                                  context,
                                  context_instance=RequestContext(request))
    responsible_index = 0
    if todo.responsible:
        responsible_index = todo.responsible.id
    data = {'title': todo.description, 'responsible': responsible_index}
    edit_todo_form = EditToDoForm(users_in_project, data)
    context['edit_todo_form'] = edit_todo_form
    return render_to_response('todo/edit_todo.html',
                              context,
                              context_instance=RequestContext(request))
Пример #7
0
def list(request, p_id):
    user = request.user
    project = get_object_or_404(Project, id=p_id)

    if not checkperm(PERMISSIONS_TODO_VIEW, user, project):
        return HttpResponseForbidden(_('Forbidden Access'))

    users_in_project = project.get_users()
    todo_list = ToDoList.objects.filter(project=project)
    context = {
        'users_in_project':
        utils.format_users_for_dropdown(user, users_in_project),
        'project': project,
        'todo_lists': [],
    }
    for l in todo_list:
        context['todo_lists'].append((l, l.get_todos()))

    return render_to_response('todo/todos_list.html',
                              context,
                              context_instance=RequestContext(request))
Пример #8
0
def edit_todo(request, p_id, todo_id):

    user = request.user
    project = get_object_or_404(Project, id = p_id)
    todo = get_object_or_404(ToDo, id = todo_id)
    todo_list = todo.todo_list

    if not checkperm(PERMISSIONS_TODO_EDITDELETE, user, project, todo) or todo_list.project != project:
        return HttpResponseForbidden(_('Forbidden Access'))

    users_in_project = utils.format_users_for_dropdown(user, project.get_users())
    context = {'project': project, 'todo': todo, 'todo_list': todo_list}
    if request.method == 'POST':
        edit_todo_form = EditToDoForm(users_in_project, request.POST)
        context['edit_todo_form'] = edit_todo_form
        if edit_todo_form.is_valid():
            user_id = int(edit_todo_form.cleaned_data['responsible'])
            if user_id != 0:
                todo.responsible = get_object_or_404(User, id = user_id)
            else:
                todo.responsible = None
            todo.description = edit_todo_form.cleaned_data['title']
            todo.save()

            events_log(user, 'U', todo.description, todo)
            request.user.message_set.create(message=_('ToDo item successfully updated.'))
        return render_to_response('todo/edit_todo.html', context,
                      context_instance=RequestContext(request))
    responsible_index = 0
    if todo.responsible:
        responsible_index = todo.responsible.id
    data = {'title': todo.description, 'responsible': responsible_index}
    edit_todo_form = EditToDoForm(users_in_project, data)
    context['edit_todo_form'] = edit_todo_form
    return render_to_response('todo/edit_todo.html', context,
                          context_instance=RequestContext(request))