Exemple #1
0
def _view_sector_manager_assistant_homepage(request, roles, responsibilities):
    primary_role = roles[0]

    primary_sector = responsibilities[0].sectors.all()[0]
    primary_master_plans = [
        smp.master_plan for smp in SectorMasterPlan.objects.filter(
            sector=responsibilities[0].sectors.all()[0])
    ]

    responsible_programs = responsibilities[0].programs.all()

    # Report
    for program in responsible_programs:
        program.approving_submissions = ReportSubmission.objects.filter(
            program=program,
            report__need_checkup=True,
            state=SUBMITTED_ACTIVITY)
        (late_report_count, rejected_report_count
         ) = report_functions.get_program_warning_report_count(program)
        program.late_report_count = late_report_count
        program.rejected_report_count = rejected_report_count

    return render_response(
        request, 'page_user/user_sector_assistant_dashboard.html', {
            'responsibilities': responsibilities,
            'roles': roles,
            'primary_role': primary_role,
            'primary_sector': primary_sector,
            'primary_master_plans': primary_master_plans,
            'responsible_programs': responsible_programs
        })
Exemple #2
0
def view_user_responsibility(request):
    
    if not permission.has_roles(request.user, 'sector_manager_assistant,sector_specialist'):
        raise Http404
    
    responsibility = UserRoleResponsibility.objects.filter(user=request.user.get_profile())[0]
    
    primary_role = request.user.groups.all()[0]
    primary_sector = responsibility.sectors.all()[0]
    
    if request.method == 'POST':
        programs = request.POST.getlist('program')
        
        responsibility.programs.clear()
        for program_id in programs:
            program = Program.objects.get(pk=program_id)
            responsibility.programs.add(program)
        
        return redirect('view_user_homepage')
    
    else:
        master_plans = [sector_master_plan.master_plan for sector_master_plan in SectorMasterPlan.objects.filter(sector=primary_sector).order_by('master_plan__ref_no')]
        
        for master_plan in master_plans:
            plans = Plan.objects.filter(master_plan=master_plan)
            
            for plan in plans:
                programs = Program.objects.filter(plan=plan)
                for program in programs: program.responsible = _responsible_this_program(program, responsibility.programs.all())
                plan.programs = programs
            
            master_plan.plans = plans
        
        return render_response(request, "page_user/user_sector_assistant_responsibility.html", {'primary_role':primary_role, 'master_plans':master_plans})
Exemple #3
0
def view_first_time_login(request):
    if request.user.is_authenticated():
        if request.user.is_superuser or (
                not request.user.is_superuser
                and not request.user.get_profile().random_password):
            return redirect('/')

    if request.method == 'POST':
        form = ChangeFirstTimePasswordForm(request.POST)
        if form.is_valid():
            password1 = form.cleaned_data['password1']
            password2 = form.cleaned_data['password2']

            user = request.user
            user.set_password(password1)
            user.save()

            user_account = user.get_profile()
            user_account.random_password = ''
            user_account.save()

            next = request.POST.get('next')
            if not next: next = '/'
            return redirect(next)

    else:
        form = ChangeFirstTimePasswordForm()

    next = request.GET.get('next', '')
    return render_response(request, "registration/first_time_login.html", {
        'form': form,
        'next': next
    })
Exemple #4
0
def view_first_time_login(request):
    if request.user.is_authenticated():
        if request.user.is_superuser or (not request.user.is_superuser and not request.user.get_profile().random_password):
            return redirect('/')
        
    if request.method == 'POST':
        form = ChangeFirstTimePasswordForm(request.POST)
        if form.is_valid():
            password1 = form.cleaned_data['password1']
            password2 =form.cleaned_data['password2']

            user = request.user
            user.set_password(password1)
            user.save()

            user_account = user.get_profile()
            user_account.random_password = ''
            user_account.save()

            next = request.POST.get('next')
            if not next: next = '/'
            return redirect(next)

    else:
        form = ChangeFirstTimePasswordForm()

    next = request.GET.get('next', '')
    return render_response(request, "registration/first_time_login.html", {'form':form, 'next':next})
Exemple #5
0
def view_user_settings(request):
    if request.method == 'POST':
        if 'profile_button' in request.POST and request.POST.get('profile_button'):
            form_profile = ChangeUserProfileForm(request.POST)
            if form_profile.is_valid():
                firstname = form_profile.cleaned_data['firstname']
                lastname =form_profile.cleaned_data['lastname']
                
                user_account = request.user.get_profile()
                user_account.firstname = firstname
                user_account.lastname = lastname
                user_account.save()
                
                messages.success(request, 'แก้ไขข้อมูลผู้ใช้เรียบร้อย')
                return redirect('view_user_settings')
        
        if 'password_button' in request.POST and request.POST.get('password_button'):
            form_password = ChangeUserPasswordForm(request.POST)
            if form_password.is_valid():
                password1 = form_password.cleaned_data['password1']
                password2 =form_password.cleaned_data['password2']
                
                user = request.user
                user.set_password(password1)
                user.save()
                
                messages.success(request, 'เปลี่ยนรหัสผ่านเรียบร้อย')
                return redirect('view_user_settings')
    
    else:
        form_profile = ChangeUserProfileForm(initial={'firstname':request.user.get_profile().firstname, 'lastname':request.user.get_profile().lastname})
        form_password = ChangeUserPasswordForm()
    
    return render_response(request, "page_user/user_settings.html", {'form_profile':form_profile, 'form_password':form_password,})
Exemple #6
0
def view_user_inbox(request):
    (object_comments,
     unread_count) = comment_functions.get_user_unread_comments(
         request.user.get_profile())
    return render_response(request, "page_user/user_inbox.html", {
        'object_comments': object_comments,
        'unread_count': unread_count
    })
Exemple #7
0
def view_user_workspace(request, workspace_id):
    workspace = get_object_or_404(Workspace, pk=workspace_id)

    layers = WorkspaceLayer.objects.filter(workspace=workspace).order_by("ordering")

    from helper.constants import SPATIAL_TYPE_STRING

    for layer in layers:
        layer.spatial_type = SPATIAL_TYPE_STRING[layer.table.spatial_type]

    return render_response(request, "workspace/workspace_view.html", {"workspace": workspace, "layers": layers})
Exemple #8
0
def view_user_settings(request):
    if request.method == 'POST':
        if 'profile_button' in request.POST and request.POST.get(
                'profile_button'):
            form_profile = ChangeUserProfileForm(request.POST)
            if form_profile.is_valid():
                firstname = form_profile.cleaned_data['firstname']
                lastname = form_profile.cleaned_data['lastname']

                user_account = request.user.get_profile()
                user_account.firstname = firstname
                user_account.lastname = lastname
                user_account.save()

                messages.success(request, 'แก้ไขข้อมูลผู้ใช้เรียบร้อย')
                return redirect('view_user_settings')
        else:
            form_profile = ChangeUserProfileForm(
                initial={
                    'firstname': request.user.get_profile().firstname,
                    'lastname': request.user.get_profile().lastname
                })

        if 'password_button' in request.POST and request.POST.get(
                'password_button'):
            form_password = ChangeUserPasswordForm(request.POST)
            if form_password.is_valid():
                password1 = form_password.cleaned_data['password1']
                password2 = form_password.cleaned_data['password2']

                user = request.user
                user.set_password(password1)
                user.save()

                messages.success(request, 'เปลี่ยนรหัสผ่านเรียบร้อย')
                return redirect('view_user_settings')
        else:
            form_password = ChangeUserPasswordForm()

    else:
        form_profile = ChangeUserProfileForm(
            initial={
                'firstname': request.user.get_profile().firstname,
                'lastname': request.user.get_profile().lastname
            })
        form_password = ChangeUserPasswordForm()

    return render_response(request, "page_user/user_settings.html", {
        'form_profile': form_profile,
        'form_password': form_password,
    })
Exemple #9
0
def _view_sector_manager_assistant_homepage(request, roles, responsibilities):
    primary_role = roles[0]
    
    primary_sector = responsibilities[0].sectors.all()[0]
    primary_master_plans = [smp.master_plan for smp in SectorMasterPlan.objects.filter(sector=responsibilities[0].sectors.all()[0])]
    
    responsible_programs = responsibilities[0].programs.all()
    
    # Report
    for program in responsible_programs:
        program.approving_submissions = ReportSubmission.objects.filter(program=program, report__need_checkup=True, state=SUBMITTED_ACTIVITY)
        (late_report_count, rejected_report_count) = report_functions.get_program_warning_report_count(program)
        program.late_report_count = late_report_count
        program.rejected_report_count = rejected_report_count
    
    return render_response(request, 'page_user/user_sector_assistant_dashboard.html', {'responsibilities':responsibilities, 'roles':roles, 'primary_role':primary_role, 'primary_sector':primary_sector, 'primary_master_plans':primary_master_plans, 'responsible_programs':responsible_programs})
Exemple #10
0
def view_user_responsibility(request):

    if not permission.has_roles(request.user,
                                'sector_manager_assistant,sector_specialist'):
        raise Http404

    responsibility = UserRoleResponsibility.objects.filter(
        user=request.user.get_profile())[0]

    primary_role = request.user.groups.all()[0]
    primary_sector = responsibility.sectors.all()[0]

    if request.method == 'POST':
        programs = request.POST.getlist('program')

        responsibility.programs.clear()
        for program_id in programs:
            program = Program.objects.get(pk=program_id)
            responsibility.programs.add(program)

        return redirect('view_user_homepage')

    else:
        master_plans = [
            sector_master_plan.master_plan
            for sector_master_plan in SectorMasterPlan.objects.filter(
                sector=primary_sector).order_by('master_plan__ref_no')
        ]

        for master_plan in master_plans:
            plans = Plan.objects.filter(master_plan=master_plan)

            for plan in plans:
                programs = Program.objects.filter(plan=plan)
                for program in programs:
                    program.responsible = _responsible_this_program(
                        program, responsibility.programs.all())
                plan.programs = programs

            master_plan.plans = plans

        return render_response(
            request, "page_user/user_sector_assistant_responsibility.html", {
                'primary_role': primary_role,
                'master_plans': master_plans
            })
Exemple #11
0
def view_user_project_tables(request, project_id):
	project = get_object_or_404(Project, pk=project_id)
	
	tables = TableDescriptor.objects.filter(project=project)
	
	return render_response(request, 'project/project_tables.html', {'project':project, 'tables':tables})
Exemple #12
0
def view_organization(request):
    master_plans = MasterPlan.objects.all().order_by('ref_no')
    sectors = Sector.objects.all().order_by('ref_no')
    return render_response(request, 'organization.html', {'sectors':sectors, 'master_plans':master_plans})
Exemple #13
0
def view_homepage(request):
	if request.user.is_authenticated():
		return redirect(settings.LOGIN_REDIRECT_URL)
	
	return render_response(request, 'homepage.html', {})
Exemple #14
0
def view_user_inbox(request):
    (object_comments, unread_count) = comment_functions.get_user_unread_comments(request.user.get_profile())
    return render_response(request, "page_user/user_inbox.html", {'object_comments':object_comments, 'unread_count':unread_count})
Exemple #15
0
def view_activity_progress(request, activity_id):
    activity = get_object_or_404(Activity, pk=activity_id)
    if request.method == 'POST':
        activity_progress = request.POST['activity_progress']
        if activity_progress == 'COMPLETED':
            progress = 100
        elif activity_progress == 'ON_PROGRESS':
            progress = request.POST['activity_progress_on_progress_percentage']
            if not progress.isdigit():
                progress = 0
        else:
            progress = 0

        current_situation = request.POST['activity_progress_current_situation']
        summary = request.POST['activity_progress_summary']
        detail = request.POST['activity_progress_detail']

        try:
            activity_progress = ActivityProgress.objects.get(activity=activity)
            activity_progress.progress = progress
            activity_progress.current_situation = current_situation
            activity_progress.summary = summary
            activity_progress.detail = detail
            activity_progress.save()
        except ObjectDoesNotExist:
            activity_progress = ActivityProgress(activity=activity,
                                                 progress=progress,
                                                 current_situation=current_situation,
                                                 summary=summary,
                                                 detail=detail)
            activity_progress.save()

        if request.FILES:
            document_name = request.FILES['activity_progress_file_attachment']
            activity_doc = ActivityDocument(activity=activity,
                                            document_name=document_name,
                                            created_by=request.user.get_profile())
            activity_doc.save()

        messages.success(request, 'The activity progress has been saved.')

        activity_docs = ActivityDocument.objects.filter(activity=activity)
        form = {'progress_percentage': activity_progress.progress,
                'current_situation': activity_progress.current_situation,
                'summary': activity_progress.summary,
                'detail': activity_progress.detail,
                'docs': activity_docs}
    else:
        try:
            activity_docs = ActivityDocument.objects.filter(activity=activity)
            activity_progress = ActivityProgress.objects.get(activity=activity)
            form = {'progress_percentage': activity_progress.progress,
                    'current_situation': activity_progress.current_situation,
                    'summary': activity_progress.summary,
                    'detail': activity_progress.detail,
                    'docs': activity_docs}
        except ObjectDoesNotExist:
            form = {'progress_percentage': 0}

    ctx = {'activity': activity, 'form': form}
    return render_response(request, 'page_program/activity_progress.html', ctx)
Exemple #16
0
def _view_director_dashboard(request):
    return render_response(request, "page_dashboard/director_dashboard.html", {})
Exemple #17
0
def _view_general_homepage(request, roles, responsibilities):
    return render_response(request, 'page_user/user_dashboard.html', {'responsibilities':responsibilities, 'roles':roles})
Exemple #18
0
def _view_sector_manager_assistant_homepage(request):
    return render_response(request, "page_dashboard/sector_assistant_dashboard.html", {})
Exemple #19
0
def view_user_workspaces(request):
    workspaces = Workspace.objects.filter(created_by=request.user.get_profile())
    return render_response(request, "workspace/workspaces.html", {"workspaces": workspaces})
Exemple #20
0
def _view_program_manager_homepage(request):
    return render_response(request, "page_dashboard/program_manager_dashboard.html", {})
Exemple #21
0
def view_user_projects(request):
	projects = Project.objects.filter(created_by=request.user)
	
	return render_response(request, 'project/projects.html', {'projects':projects})
Exemple #22
0
def _view_general_homepage(request, roles, responsibilities):
    return render_response(request, 'page_user/user_dashboard.html', {
        'responsibilities': responsibilities,
        'roles': roles
    })