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' })
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' })
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' })
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' })
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 })
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' })
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' })
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' })
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' })
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, })
def admin_workflow_settings(request): nav_links = get_nav_links('Workflows') return render(request, 'admin/workflow_settings.html', { 'nav_links': nav_links, 'active': 'workflows' })
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' })