示例#1
0
def admin_user_management(request, role, status):
    nav_links = get_nav_links('People')
    users = ActivityUser.objects.filter(
        organizations__id=request.user.activity_user.organization.id).exclude(
            user__is_superuser=True)
    groups = Group.objects.all().distinct('name')

    # get owner orgs
    user_org_group_ids = ActivityUserOrganizationGroup.objects.filter(
        activity_user=request.user.activity_user,
        group__name='Owner').values_list('organization__id', flat=True)

    user_organizations = Organization.objects.filter(id__in=user_org_group_ids)
    if role != 'all':
        get_org_users_by_roles = ActivityUserOrganizationGroup.objects.filter(
            organization__id=request.user.activity_user.organization.id,
            group__id=int(role)).values_list('activity_user__id')

        users = users.filter(id__in=get_org_users_by_roles)

    if status != 'all':
        status = True if status == 'active' else False
        get_org_users_by_roles = ActivityUserOrganizationGroup.objects.filter(
            organization__id=request.user.activity_user.organization.id,
            is_active=status).values_list('activity_user__id')
        users = users.filter(id__in=get_org_users_by_roles)

    return render(
        request, 'admin/user_management.html', {
            'nav_links': nav_links,
            'users': users,
            'groups': groups,
            'organizations': user_organizations,
            'active': 'people'
        })
示例#2
0
def admin_map_settings(request):
    user = get_object_or_404(ActivityUser, user=request.user)
    organization = user.organization
    # reset logo
    # if request.GET.get('reset_logo'):
    #     organization = Organization.objects.get(pk=user.organization.id)
    #     organization.logo = ''
    # organization.save()

    if request.method == 'POST':
        data = request.POST
        organization.country_code = data.get('country_code')
        organization.location_description = data.get('location_description')
        organization.latitude = data.get('latitude')
        organization.longitude = data.get('longitude')
        organization.zoom = data.get('zoom')
        organization.save()
        user.organization = organization
        user.save()

    nav_links = get_nav_links('Maps')
    return render(request, 'admin/map_settings.html', {
        'nav_links': nav_links,
        'organization': organization,
        'active': 'maps'
    })
示例#3
0
def admin_profile_settings(request):
    user = get_object_or_404(ActivityUser, user=request.user)
    organization = user.organization
    # reset logo
    if request.GET.get('reset_logo'):
        organization = Organization.objects.get(pk=user.organization.id)
        organization.logo = ''
        organization.save()

    if request.method == 'POST':
        # form = OrganizationEditForm(request.FILES,
        #                             instance=organization)
        # if form.is_valid():
        data = request.POST
        organization.logo = request.FILES.get('organizationLogo')
        organization.name = data.get('name')
        organization.description = data.get('description')
        organization.save()
        user.organization = organization
        user.save()
        messages.success(request,
                         'Your organization logo has been updated.',
                         fail_silently=False)

    nav_links = get_nav_links('Profile')
    return render(request, 'admin/profile_settings.html', {
        'nav_links': nav_links,
        'organization': organization,
        'active': 'profile'
    })
示例#4
0
def admin_configurations(request):
    logged_activity_user = ActivityUser.objects.get(user=request.user)

    if request.method == 'POST' and request.is_ajax:
        data = request.POST

        model_updates = {
            'level_1_label': data.get('level_1_label'),
            'level_2_label': data.get('level_2_label'),
            'level_3_label': data.get('level_3_label'),
            'level_4_label': data.get('level_4_label'),
            'site_label': data.get('site_label'),
            'indicator_label': data.get('indicator_label'),
            'form_label': data.get('form_label'),
            'stakeholder_label': data.get('stakeholder_label'),
            'date_format': data.get('date_format'),
            # 'default_currency': data.get('default_currency')
        }
        organization = Organization.objects.filter(
            id=logged_activity_user.organization.id)
        updates = organization.update(**model_updates)
        if updates:
            organization_changes = Organization.objects.filter(
                id=logged_activity_user.organization.id)
            data = serializers.serialize('json', organization_changes)
            return HttpResponse(data, content_type="application/json")

    nav_links = get_nav_links('Configurations')
    return render(
        request, 'admin/default_settings.html', {
            'nav_links': nav_links,
            'organization': logged_activity_user.organization,
            'active': 'configurations'
        })
示例#5
0
def admin_user_edit(request, pk):
    """
    Edit user
    :param request:
    :param pk:
    :return:
    """
    nav_links = get_nav_links('People')
    activity_user_obj = get_object_or_404(ActivityUser, pk=int(pk))
    user_obj = activity_user_obj.user

    form = RegistrationForm(request.POST or None,
                            instance=activity_user_obj,
                            initial={'username': request.user})
    user_form = NewUserRegistrationForm(request.POST or None,
                                        instance=user_obj)

    if request.method == 'POST':
        data = request.POST
        activity_user_object = {
            'employee_number': data.get('employee_number'),
            'organization': data.get('organization'),
            'title': data.get('title')
        }

        user_object = {
            'first_name': data.get('first_name'),
            'last_name': data.get('last_name'),
            'email': data.get('email'),
            'username': data.get('username')
        }
        # save user
        User.objects.filter(pk=user_obj.id).update(**user_object)
        user = User.objects.get(pk=user_obj.pk)
        if user:
            # save Activity user after updating name
            activity_user = activity_user_obj
            activity_user.employee_number = activity_user_object[
                'employee_number']
            activity_user.organization = Organization.objects.get(
                pk=int(activity_user_object['organization']))
            activity_user.title = activity_user_object['title']
            activity_user.name = '{} {}'.format(user.first_name,
                                                user.last_name)
            activity_user.save()

        messages.success(request,
                         'Your profile has been updated.',
                         fail_silently=False)
        return redirect('/accounts/admin/users/all/all/')
    return render(
        request, 'admin/user_update_form.html', {
            'form': form,
            'user_form': user_form,
            'helper': RegistrationForm.helper,
            'nav_links': nav_links
        })
示例#6
0
def admin_indicator_settings(request):
    user = get_object_or_404(ActivityUser, user=request.user)
    organization = user.organization

    nav_links = get_nav_links('Indicator')
    return render(request, 'admin/indicator_settings.html', {
        'organization': organization,
        'active': 'indicator_settings'
    })
示例#7
0
def admin_dashboard(request):
    """
    Admin dashboard view
    """
    nav_links = get_nav_links('Usage')
    return render(request, 'admin/landing_page.html', {
        'nav_links': nav_links,
        'active': 'usage'
    })
示例#8
0
def admin_component_admin(request):
    user = ActivityUser.objects.filter(user=request.user).first()
    stakeholders = Stakeholder.objects.filter(organization=user.organization)
    nav_links = get_nav_links('Components')
    return render(
        request, 'admin/component_admin.html', {
            'nav_links': nav_links,
            'get_stakeholders': stakeholders,
            'active': 'components'
        })
示例#9
0
def admin_indicator_config(request):
    user = get_object_or_404(ActivityUser, user=request.user)
    organization = user.organization
    get_collection_frequencies = DataCollectionFrequency.objects.all()

    nav_links = get_nav_links('Indicators')
    return render(
        request, 'admin/indicator_configs.html', {
            'nav_links': nav_links,
            'organization': organization,
            'get_collection_frequencies': get_collection_frequencies,
            'active': 'indicators'
        })
示例#10
0
def admin_user_invitations(request, organization):
    nav_links = get_nav_links('People')

    user_organizations = request.user.activity_user.organizations.all()
    invitations = UserInvite.objects.filter(
        organization__in=user_organizations)

    if int(organization) != 0:
        invitations = invitations.filter(organization_id=int(organization))

    return render(
        request, 'admin/user_invitations.html', {
            'nav_links': nav_links,
            'invitations': invitations,
            'organizations': user_organizations,
        })
示例#11
0
def admin_workflow_settings(request):
    nav_links = get_nav_links('Workflows')
    return render(request, 'admin/workflow_settings.html', {
        'nav_links': nav_links,
        'active': 'workflows'
    })
示例#12
0
def admin_form_library_settings(request):
    nav_links = get_nav_links('Form Library')
    return render(request, 'admin/form_library_settings.html', {
        'nav_links': nav_links,
        'active': 'form_library'
    })