Esempio n. 1
0
def add_work_item(request, wip_report):
        report = get_object_or_404(WIPReport, name=wip_report)

        # Some security
        allow_access = False
        for group in request.user.groups.all():
                if group in report.write_acl.all():
                        allow_access = True
                
        if allow_access:
                if request.method == 'POST':
                        form = WIPItemEditorForm(report, request.POST)
                        if form.is_valid():
                                t = form.save()
                                heading = Heading.objects.get(id=request.POST['heading'])
                                heading.wip_items.add(t)
                                heading.save()
                                _add_wip_to_archive(report)
                                return HttpResponse( return_json_success() )
                        else:
                                return HttpResponse( handle_form_errors(form.errors))
                else:
                        return HttpResponse( handle_form_errors(form.errors))

        else:
                return HttpResponse( handle_form_errors(form.errors))
Esempio n. 2
0
def update_work_item(request, wip_report, work_item_id):
        wip_report = WIPReport.objects.get(name=wip_report)
        work_item = get_object_or_404(WIPItem, id=work_item_id)

        # Some security
        allow_access = False
        for group in request.user.groups.all():
                if group in wip_report.read_acl.all():
                        allow_access = True
                        form = WIPItemUserForm(request.POST, instance=work_item)
                if group in wip_report.write_acl.all():
                        allow_access = True
                        form = WIPItemEditorForm(wip_report, request.POST, instance=work_item)
        
        if allow_access:
                if form.is_valid():
                        t = form.save(commit=False)
                        
                        if request.POST['update'] != '':                        
                                if request.user.get_full_name() == '':
                                        update_name = request.user.username
                                else:
                                        update_name = request.user.get_full_name()
                                t.history = '''\n\n------Updated by %s on %s------\n\n%s\n\n%s''' % ( update_name, time.strftime("%Y-%m-%d %H:%M"), form.cleaned_data.get('update'), work_item.history )
                        t.save()
                        _add_wip_to_archive(work_item.heading.all()[0].report.all()[0])

                        return HttpResponse( return_json_success() )
                else:
                        return HttpResponse( handle_form_errors(form.errors))
def edit_work_item(request, project_number, wbs_id):
        project = get_object_or_404(Project, project_number=project_number)
        check_project_write_acl(project, request.user)  # Will return Http404 if user isn't allowed to view project
        work_item = WorkItem.objects.get(id=wbs_id)

        # Give the user the correct form - WBSForm for a project admin (has write access to project) or WBSUserForm for a readonly user
        form_type = 'WBSUserForm'
        for group in request.user.groups.all():
                if group in project.write_acl.all():
                        form_type = 'WBSForm'

        if request.method == 'POST':
                form = eval(form_type)(project, request.POST, instance=work_item)
                if form.is_valid():
                        t = form.save(commit=False)
                        t.author = request.user

                        if request.POST['update'] != '':                        
                                if request.user.get_full_name() == '':
                                        update_name = request.user.username
                                else:
                                        update_name = request.user.get_full_name()
                                t.history = '''\n\n------Updated by %s on %s------\n\n%s\n\n%s''' % ( update_name, time.strftime("%Y-%m-%d %H:%M"), form.cleaned_data.get('update'), work_item.history )

                        t.save()
                        return HttpResponse( return_json_success() )
                else:
                        return HttpResponse( handle_form_errors(form.errors))
def add_risk(request, project_number):

    # Some security - only allow users to view objects they are allowed to via read_acl
    project = get_object_or_404(Project, project_number=project_number)
    check_project_read_acl(
        project, request.user
    )  # Will return Http404 if user isn't allowed to view project

    if request.method == 'POST':
        form = RiskForm(request.POST)
        if form.is_valid():
            t = form.save(commit=False)
            t.risk_number = '''RISK-%s-%s''' % (
                request.user.username[:2].upper(), time.strftime("%Y%m%d%H%M"))
            t.rating = _calculate_risk(t.probability, t.impact)
            t.save()
            project.risks.add(t)
            project.save()
            request.user.message_set.create(message='''Risk %s Registered''' %
                                            t.risk_number)
            updateLog(request, project.project_number,
                      '''Risk %s Registered''' % t.risk_number)
            return HttpResponse(return_json_success())
        else:
            return HttpResponse(handle_form_errors(form.errors))
def add_engineering_day(request, project_number, wbs_id):

        project = get_object_or_404(Project, project_number=project_number)
        check_project_write_acl(project, request.user)  # Will return Http404 if user isn't allowed to view project
        work_item = WorkItem.objects.get(id=wbs_id)
                
        if request.method == 'POST':
                form = EngineeringDayForm(request.POST)
                if form.is_valid():
                        t = form.save(commit=False)     
                        logging.debug('''resource => %s, work_date => %s, day_type => %s''' % ( t.resource, t.work_date, t.day_type ))
                        
                        available_resources = get_resources_for_engineering_day(request, project_number, wbs_id, t.work_date.strftime("%Y"), t.work_date.strftime("%m"), t.work_date.strftime("%d"), t.day_type, as_json=False)
                        logging.debug('''Resource ID is: %s''' % t.resource.id )
                        logging.debug('''Available resources are: %s''' % available_resources )
                        if t.resource.id not in [ r['pk'] for r in available_resources ]:
                                logging.debug('''User has tried to book %s on %s when he hasn't got the correct skillset''' % ( t.resource, t.work_date ))
                                return HttpResponse( handle_generic_error("Sorry - this resource hasn't got the skillset to work on this task"))

                        if EngineeringDay.objects.filter(work_date=t.work_date, resource=t.resource, day_type__in=[ t.day_type, 2]).count() > 0:
                                logging.debug('''User has tried to book %s on %s when he has existing engineering days booked''' % ( t.resource, t.work_date ))
                                return HttpResponse( handle_generic_error("Sorry - this resource is already booked at this time."))
                                
                        
                        
                        t.save()
                        work_item.engineering_days.add(t)
                        work_item.save()
                        return HttpResponse( return_json_success() )
                else:
                        return HttpResponse( handle_form_errors(form.errors))
def edit_rota(request):

        # Some security, if the user isn't allowed to edit the rota raise 404
        if not request.user.has_perm('rota.can_edit'):
                raise Http404

        form = EditRotaForm(request.POST)       
        if form.is_valid():
                c = form.cleaned_data
                user = User.objects.get(id=c['person_id'])
                requested_week = calculate_week(datetime.datetime.strptime(c['monday_date'], "%Y-%m-%d"))
                
                #Get the existing Rota objects if they exist and edit or create them
                days = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday']
                
                for d in range(0,7):
                        # No point proceeding with this day if there isn't a rota item to create
                        if c[days[d]]:
                                try:
                                        r = RotaItem.objects.get(person=user, date=requested_week[d])
                                except RotaItem.DoesNotExist:
                                        r = RotaItem()
                                r.person = user
                                r.date = requested_week[d]
                                r.activity = RotaActivity.objects.get(id=c[days[d]])
                                r.description = c['%s_description' % days[d]]
                                r.author = request.user
                                r.save()
                                logging.debug('''Added rota item... user=>%s, date=>%s, activity=>%s''' % ( r.person, r.date, r.activity ))

                return HttpResponse( return_json_success() )
        else:
                return HttpResponse( handle_form_errors(form.errors))
Esempio n. 7
0
def add_file(request, project_number):
        
        project = Project.objects.get(project_number=project_number)
        if request.method == 'POST':
                form = FileForm(request.POST, request.FILES)
                if form.is_valid():
                        t = form.save()
                        project.files.add(t)
                        project.save()
                        return HttpResponse( return_json_success() )
                else:
                        return HttpResponse( handle_form_errors(form.errors))
def add_file(request, project_number):

    project = Project.objects.get(project_number=project_number)
    if request.method == 'POST':
        form = FileForm(request.POST, request.FILES)
        if form.is_valid():
            t = form.save()
            project.files.add(t)
            project.save()
            return HttpResponse(return_json_success())
        else:
            return HttpResponse(handle_form_errors(form.errors))
Esempio n. 9
0
def edit_checkpoint_report(request, project_number, report_id):

    report = ExecutiveSummary.objects.get(id=report_id)
    project = Project.objects.get(project_number=project_number)

    if request.method == 'POST':
        form = DialogExecutiveSummary(request.POST, instance=report)
        if form.is_valid():
            t = form.save()
            request.user.message_set.create(message='''Report Edited''')
            return HttpResponse(return_json_success())
        else:
            return HttpResponse(handle_form_errors(form.errors))
Esempio n. 10
0
def edit_checkpoint_report(request, project_number, report_id):

        report = ExecutiveSummary.objects.get(id=report_id)
        project = Project.objects.get(project_number=project_number)
        
        if request.method == 'POST':
                form = DialogExecutiveSummary(request.POST, instance=report)
                if form.is_valid():
                        t = form.save()
                        request.user.message_set.create(message='''Report Edited''')
                        return HttpResponse( return_json_success() )
                else:
                        return HttpResponse( handle_form_errors(form.errors))
Esempio n. 11
0
def edit_deliverable(request, project_number, deliverable_id):

    project = Project.objects.get(project_number=project_number)
    deliverable = Deliverable.objects.get(id=deliverable_id)
    if request.method == "POST":
        form = DeliverableForm(request.POST, instance=deliverable)
        if form.is_valid():
            t = form.save()
            t.save()
            request.user.message_set.create(message="""Deliverable %s Edited""" % t.id)
            for change in form.changed_data:
                updateLog(request, project_number, """%s changed to %s""" % (change, eval("""t.%s""" % change)))
            return HttpResponse(return_json_success())
        else:
            return HttpResponse(handle_form_errors(form.errors))
Esempio n. 12
0
def edit_lesson(request, project_number, lesson_id):

        project = Project.objects.get(project_number=project_number)
        lesson = LessonLearnt.objects.get(id=lesson_id)
        if request.method == 'POST':
                form = LessonForm(request.POST, instance=lesson)
                if form.is_valid():
                        t = form.save()
                        t.save()
                        request.user.message_set.create(message='''Lesson %s Edited''' % t.id)
                        for change in form.changed_data:
                                updateLog(request, project_number, '%s changed to %s' % ( change, eval('''t.%s''' % change)))
                        return HttpResponse( return_json_success() )
                else:
                        return HttpResponse( handle_form_errors(form.errors))
Esempio n. 13
0
def add_checkpoint_report(request, project_number):

        # Some security - only allow users to view objects they are allowed to via write_acl
        project = get_object_or_404(Project, project_number=project_number)
        check_project_write_acl(project, request.user)  # Will return Http404 if user isn't allowed to write to project

        if request.method == 'POST':
                form = DialogExecutiveSummary(request.POST)
                if form.is_valid():
                        t = form.save()
                        project.executive_summary.add(t)
                        project.save()
                        request.user.message_set.create(message='''Checkpoint Report added''')
                        return HttpResponse( return_json_success() )
                else:
                        return HttpResponse( handle_form_errors(form.errors))
Esempio n. 14
0
def add_issue(request, project_number):

        project = Project.objects.get(project_number=project_number)
        if request.method == 'POST':
                form = IssueForm(request.POST)
                if form.is_valid():
                        t = form.save(commit=False)
                        t.author = request.user
                        t.save()
                        project.issues.add(t)
                        project.save()
                        request.user.message_set.create(message='''Issue %s Registered''' % t.id)
                        updateLog(request, project_number, '''Issue %s Registered''' % t.id)
                        return HttpResponse( return_json_success() )
                else:
                        return HttpResponse( handle_form_errors(form.errors))
Esempio n. 15
0
def add_project_stage(request, project_number):

        project = get_object_or_404(Project, project_number=project_number)
        check_project_write_acl(project, request.user)  # Will return Http404 if user isn't allowed to view project
        
        if request.method == 'POST':
                form = WBSProjectStage(request.POST)
                if form.is_valid():
                        t = form.save(commit=False)
                        t.stage = '''%s - %s''' % ( t.stage_number, t.stage )
                        t.save()
                        project.stage_plan.add(t)
                        project.save()
                        return HttpResponse( return_json_success() )
                else:
                        return HttpResponse( handle_form_errors(form.errors))
Esempio n. 16
0
def add_lesson(request, project_number):

        project = Project.objects.get(project_number=project_number)
        lessons = LessonLearnt.objects.filter(project=project)
        if request.method == 'POST':
                form = LessonForm(request.POST)
                if form.is_valid():
                        t = form.save()
                        t.save()
                        project.lessons_learnt.add(t)
                        project.save()
                        request.user.message_set.create(message='''Lesson %s Registered''' % t.id)
                        updateLog(request, project_number, '''Lesson %s Registered''' % t.id)
                        return HttpResponse( return_json_success() )
                else:
                        return HttpResponse( handle_form_errors(form.errors))
Esempio n. 17
0
def add_work_item(request, project_number):
        project = get_object_or_404(Project, project_number=project_number)
        check_project_write_acl(project, request.user)  # Will return Http404 if user isn't allowed to view project
        if request.method == 'POST':
                form = WBSForm(project, request.POST)
                if form.is_valid():
                        t = form.save(commit=False)
                        number_of_items = WorkItem.objects.filter(active=True, project__id=project.id).count()
                        t.wbs_number = number_of_items + 1      
                        t.author = request.user
                        t.save()
                        project.work_items.add(t)
                        project.save()
                        return HttpResponse( return_json_success() )
                else:
                        return HttpResponse( handle_form_errors(form.errors))
Esempio n. 18
0
def add_deliverable(request, project_number):

    # Some security - only allow users to view objects they are allowed to via read_acl
    project = get_object_or_404(Project, project_number=project_number)
    check_project_read_acl(project, request.user)  # Will return Http404 if user isn't allowed to view project
    if request.method == "POST":
        form = DeliverableForm(request.POST)
        if form.is_valid():
            t = form.save()
            t.save()
            project.deliverables.add(t)
            project.save()
            request.user.message_set.create(message="""Deliverable %s Registered""" % t.id)
            updateLog(request, project_number, """Deliverable %s Registered""" % t.id)
            return HttpResponse(return_json_success())
        else:
            return HttpResponse(handle_form_errors(form.errors))
Esempio n. 19
0
def add_lesson(request, project_number):

    project = Project.objects.get(project_number=project_number)
    lessons = LessonLearnt.objects.filter(project=project)
    if request.method == 'POST':
        form = LessonForm(request.POST)
        if form.is_valid():
            t = form.save()
            t.save()
            project.lessons_learnt.add(t)
            project.save()
            request.user.message_set.create(
                message='''Lesson %s Registered''' % t.id)
            updateLog(request, project_number,
                      '''Lesson %s Registered''' % t.id)
            return HttpResponse(return_json_success())
        else:
            return HttpResponse(handle_form_errors(form.errors))
Esempio n. 20
0
def add_issue(request, project_number):

    project = Project.objects.get(project_number=project_number)
    if request.method == 'POST':
        form = IssueForm(request.POST)
        if form.is_valid():
            t = form.save(commit=False)
            t.author = request.user
            t.save()
            project.issues.add(t)
            project.save()
            request.user.message_set.create(message='''Issue %s Registered''' %
                                            t.id)
            updateLog(request, project_number,
                      '''Issue %s Registered''' % t.id)
            return HttpResponse(return_json_success())
        else:
            return HttpResponse(handle_form_errors(form.errors))
Esempio n. 21
0
def edit_lesson(request, project_number, lesson_id):

    project = Project.objects.get(project_number=project_number)
    lesson = LessonLearnt.objects.get(id=lesson_id)
    if request.method == 'POST':
        form = LessonForm(request.POST, instance=lesson)
        if form.is_valid():
            t = form.save()
            t.save()
            request.user.message_set.create(message='''Lesson %s Edited''' %
                                            t.id)
            for change in form.changed_data:
                updateLog(
                    request, project_number,
                    '%s changed to %s' % (change, eval('''t.%s''' % change)))
            return HttpResponse(return_json_success())
        else:
            return HttpResponse(handle_form_errors(form.errors))
Esempio n. 22
0
def edit_project(request, project_number, form_type):

        # Some security - only allow users to view objects they are allowed to via write_acl
        project = get_object_or_404(Project, project_number=project_number)
        check_project_write_acl(project, request.user)  # Will return Http404 if user isn't allowed to write to project

        if request.method == 'POST':
                form = eval(form_type)(request.POST, instance=project)
                if form.is_valid():
                        t = form.save()
                        for id in request.POST['team_managers_placeholder'].split(','):
                                t.team_managers.add(id)
                        t.save()
                        request.user.message_set.create(message='''Project %s Edited''' % t.project_number)
                        for change in form.changed_data:
                                updateLog(request, t.project_number, '%s Updated' % change)
                        return HttpResponse( return_json_success() )
                else:
                        return HttpResponse( handle_form_errors(form.errors))
Esempio n. 23
0
def add_checkpoint_report(request, project_number):

    # Some security - only allow users to view objects they are allowed to via write_acl
    project = get_object_or_404(Project, project_number=project_number)
    check_project_write_acl(
        project, request.user
    )  # Will return Http404 if user isn't allowed to write to project

    if request.method == 'POST':
        form = DialogExecutiveSummary(request.POST)
        if form.is_valid():
            t = form.save()
            project.executive_summary.add(t)
            project.save()
            request.user.message_set.create(
                message='''Checkpoint Report added''')
            return HttpResponse(return_json_success())
        else:
            return HttpResponse(handle_form_errors(form.errors))
Esempio n. 24
0
def add_risk(request, project_number):

        # Some security - only allow users to view objects they are allowed to via read_acl
        project = get_object_or_404(Project, project_number=project_number)
        check_project_read_acl(project, request.user)   # Will return Http404 if user isn't allowed to view project

        if request.method == 'POST':
                form = RiskForm(request.POST)
                if form.is_valid():
                        t = form.save(commit=False)
                        t.risk_number = '''RISK-%s-%s''' % (request.user.username[:2].upper(), time.strftime("%Y%m%d%H%M"))
                        t.rating = _calculate_risk(t.probability, t.impact)
                        t.save()
                        project.risks.add(t)
                        project.save()
                        request.user.message_set.create(message='''Risk %s Registered''' % t.risk_number)
                        updateLog(request, project.project_number, '''Risk %s Registered''' % t.risk_number)
                        return HttpResponse( return_json_success() )
                else:
                        return HttpResponse( handle_form_errors(form.errors))
Esempio n. 25
0
def add_deliverable(request, project_number):

    # Some security - only allow users to view objects they are allowed to via read_acl
    project = get_object_or_404(Project, project_number=project_number)
    check_project_read_acl(
        project, request.user
    )  # Will return Http404 if user isn't allowed to view project
    if request.method == 'POST':
        form = DeliverableForm(request.POST)
        if form.is_valid():
            t = form.save()
            t.save()
            project.deliverables.add(t)
            project.save()
            request.user.message_set.create(
                message='''Deliverable %s Registered''' % t.id)
            updateLog(request, project_number,
                      '''Deliverable %s Registered''' % t.id)
            return HttpResponse(return_json_success())
        else:
            return HttpResponse(handle_form_errors(form.errors))
Esempio n. 26
0
def edit_project(request, project_number, form_type):

    # Some security - only allow users to view objects they are allowed to via write_acl
    project = get_object_or_404(Project, project_number=project_number)
    check_project_write_acl(
        project, request.user
    )  # Will return Http404 if user isn't allowed to write to project

    if request.method == 'POST':
        form = eval(form_type)(request.POST, instance=project)
        if form.is_valid():
            t = form.save()
            for id in request.POST['team_managers_placeholder'].split(','):
                t.team_managers.add(id)
            t.save()
            request.user.message_set.create(message='''Project %s Edited''' %
                                            t.project_number)
            for change in form.changed_data:
                updateLog(request, t.project_number, '%s Updated' % change)
            return HttpResponse(return_json_success())
        else:
            return HttpResponse(handle_form_errors(form.errors))
Esempio n. 27
0
def edit_risk(request, project_number, risk_id):

    risk = Risk.objects.get(id=risk_id)
    project = Project.objects.get(project_number=project_number)
        
    if request.method == 'POST':
        form = RiskForm(request.POST, instance=risk)
        if form.is_valid():
            t = form.save(commit=False)
            t.rating = _calculate_risk(t.probability, t.impact)
            if request.POST['update'] != '':                        
                if request.user.get_full_name() == '':
                    update_name = request.user.username
                else:
                    update_name = request.user.get_full_name()
                    t.history = '''\n\n------Updated by %s on %s------\n\n%s\n\n%s''' % ( update_name, time.strftime("%Y-%m-%d %H:%M"),
                    form.cleaned_data.get('update'), risk.history )
            t.save()
            request.user.message_set.create(message='''Risk %s Edited''' % t.risk_number)
            return HttpResponse( return_json_success() )
        else:
            return HttpResponse( handle_form_errors(form.errors))
Esempio n. 28
0
def edit_issue(request, project_number, issue_id):

    project = Project.objects.get(project_number=project_number)
    issue = Issue.objects.get(id=issue_id)
    if request.method == 'POST':
        form = IssueEditForm(request.POST, instance=issue)
        if form.is_valid():
            t = form.save(commit=False)
            if request.POST['update'] != '':                        
                if request.user.get_full_name() == '':
                    update_name = request.user.username
                else:
                    update_name = request.user.get_full_name()
                    t.history = '''\n\n------Updated by %s on %s------\n\n%s\n\n%s''' % ( update_name, time.strftime("%Y-%m-%d %H:%M"),
                    form.cleaned_data.get('update'), issue.history )
            t.save()
            request.user.message_set.create(message='''Issue %s Edited''' % t.id)
            for change in form.changed_data:
                updateLog(request, project_number, 'Issue %s updated' % ( t.id ))
            return HttpResponse( return_json_success() )
        else:
            return HttpResponse( handle_form_errors(form.errors))
Esempio n. 29
0
def add_heading(request, wip_report):
        
        wip_report = get_object_or_404(WIPReport, name=wip_report)
        
        # Some security 
        allow_access = False             
        for group in request.user.groups.all():
                if group in wip_report.write_acl.all():
                        allow_access = True
        
        if allow_access:
                form = WIPHeadingForm(request.POST)
                if form.is_valid():
                        t = form.save()
                        wip_report.headings.add(t)
                        wip_report.save()
                        _add_wip_to_archive(wip_report)
                        return HttpResponse( return_json_success() )
                else:
                        return HttpResponse( handle_form_errors(form.errors))
        else:
                return HttpResponse( handle_generic_error("Sorry, you don't have permissions to add a WIP heading"))
Esempio n. 30
0
def add_wip_engineering_day(request, wip_report, work_item_id):

        work_item = get_object_or_404(WIPItem, id=work_item_id)
        wip_report = WIPReport.objects.get(name=wip_report)

        if request.method == 'POST':
                form = EngineeringDayForm(request.POST)
                if form.is_valid():
                        t = form.save(commit=False)     

                        logging.debug('''resource => %s, work_date => %s, day_type => %s''' % ( t.resource, t.work_date, t.day_type ))
                        
                        available_resources = get_resources_for_engineering_day(request, wip_report, t.work_date.strftime("%Y"), t.work_date.strftime("%m"), t.work_date.strftime("%d"), t.day_type, as_json=False)
                        logging.debug('''Resource ID is: %s''' % t.resource.id )
                        logging.debug('''Available resources are: %s''' % available_resources )
                        if t.resource.id not in [ r['pk'] for r in available_resources ]:
                                logging.debug('''User has tried to book %s on %s when he hasn't got the correct skillset''' % ( t.resource, t.work_date ))
                                return HttpResponse( handle_generic_error("Sorry - this resource hasn't got the skillset to work on this task"))

                        if EngineeringDay.objects.filter(work_date=t.work_date, resource=t.resource, day_type__in=[ t.day_type, 2]).count() > 0:
                                logging.debug('''User has tried to book %s on %s when he has existing engineering days booked''' % ( t.resource, t.work_date ))
                                return HttpResponse( handle_generic_error("Sorry - this resource is already booked at this time."))

                        # Check the rota, make sure resource isn't on holiday or training etc
                        try:
                                rota = RotaItem.objects.get(date=t.work_date, person=t.resource)
                                if rota.activity.unavailable_for_projects:
                                        return HttpResponse( handle_generic_error("Sorry - this resource has an entry in the Rota stopping you booking this Engineering Day."))
                        except RotaItem.DoesNotExist:
                                pass    

                        t.save()
                        work_item.engineering_days.add(t)
                        work_item.save()
                        logging.debug('''Booked engineering day for %s on %s''' % ( t.resource, t.work_date ))
                        return HttpResponse( return_json_success() )
                else:
                        return HttpResponse( handle_form_errors(form.errors))
Esempio n. 31
0
def complete_work_item(request, wip_report, work_item_id):
        wip_report = WIPReport.objects.get(name=wip_report)
        work_item = get_object_or_404(WIPItem, id=work_item_id)

        # Some security
        allow_access = False
        for group in request.user.groups.all():
                if group in wip_report.read_acl.all():
                        allow_access = True
                if group in wip_report.write_acl.all():
                        allow_access = True

                
        if allow_access:
                form = CompleteWIPItemForm(request.POST)
                if form.is_valid():
                        work_item.complete = True
                        work_item.save()
                        _add_wip_to_archive(work_item.heading.all()[0].report.all()[0])

                        return HttpResponse( return_json_success() )
                else:
                        return HttpResponse( handle_form_errors(form.errors))
Esempio n. 32
0
def edit_issue(request, project_number, issue_id):

    project = Project.objects.get(project_number=project_number)
    issue = Issue.objects.get(id=issue_id)
    if request.method == 'POST':
        form = IssueEditForm(request.POST, instance=issue)
        if form.is_valid():
            t = form.save(commit=False)
            if request.POST['update'] != '':
                if request.user.get_full_name() == '':
                    update_name = request.user.username
                else:
                    update_name = request.user.get_full_name()
                    t.history = '''\n\n------Updated by %s on %s------\n\n%s\n\n%s''' % (
                        update_name, time.strftime("%Y-%m-%d %H:%M"),
                        form.cleaned_data.get('update'), issue.history)
            t.save()
            request.user.message_set.create(message='''Issue %s Edited''' %
                                            t.id)
            for change in form.changed_data:
                updateLog(request, project_number, 'Issue %s updated' % (t.id))
            return HttpResponse(return_json_success())
        else:
            return HttpResponse(handle_form_errors(form.errors))
Esempio n. 33
0
def edit_risk(request, project_number, risk_id):

    risk = Risk.objects.get(id=risk_id)
    project = Project.objects.get(project_number=project_number)

    if request.method == 'POST':
        form = RiskForm(request.POST, instance=risk)
        if form.is_valid():
            t = form.save(commit=False)
            t.rating = _calculate_risk(t.probability, t.impact)
            if request.POST['update'] != '':
                if request.user.get_full_name() == '':
                    update_name = request.user.username
                else:
                    update_name = request.user.get_full_name()
                    t.history = '''\n\n------Updated by %s on %s------\n\n%s\n\n%s''' % (
                        update_name, time.strftime("%Y-%m-%d %H:%M"),
                        form.cleaned_data.get('update'), risk.history)
            t.save()
            request.user.message_set.create(message='''Risk %s Edited''' %
                                            t.risk_number)
            return HttpResponse(return_json_success())
        else:
            return HttpResponse(handle_form_errors(form.errors))