def get(self, request): auth_group = UserGroupManager.check_user_group(request.user) logged_in_employee = Subscriber.objects.get(user=request.user) context = { 'auth_group' : auth_group, 'leave_form' : LeaveForm(logged_in_employee) } return render(request, 'ola/home.html', context)
def get(self, request): auth_group = UserGroupManager.check_user_group(request.user) if not UserGroupManager.is_company_admin(request.user): return http.HttpResponseRedirect(reverse('home_page')) logged_in_employee = Subscriber.objects.get(user=request.user) context = { 'auth_group' : auth_group, 'logged_in_employee' : logged_in_employee, } return render(request, 'subscriber/subscribers.html', context)
def get_subscriber_leave_requests(self, user_id, page_no=INITIAL_PAGE_NO, no_of_records=NUMBER_OF_RECORDS_PER_PAGE, show_all=False, **kwargs): auth_group = UserGroupManager.check_user_group(self.user) logged_in_employee = Subscriber.objects.get(user=self.user) subscriber_to_get = Subscriber.objects.get(user__id__exact=user_id) is_company_admin = UserGroupManager.is_company_admin(self.user) if not logged_in_employee.id == subscriber_to_get.id: if not is_company_admin: return self.respond(is_saved=False, auth_errors='Permission Denied') leaves = self._prepare_search(Leave.objects.filter(requester=subscriber_to_get).order_by('-created_on'), **kwargs) show_all = bool(int(show_all)) prevPageNo = 0 nextPageNo = 0 current_page_number = 0 num_of_pages = leaves.count() if not show_all: paginator = Paginator(leaves, no_of_records) try: leaves = paginator.page(page_no) except PageNotAnInteger: # If page is not an integer, deliver first page. leaves = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. leaves = paginator.page(paginator.num_pages) try: prevPageNo = leaves.previous_page_number() except InvalidPage as e: prevPageNo = page_no try: nextPageNo = leaves.next_page_number() except InvalidPage as e: nextPageNo = page_no current_page_number = leaves.number num_of_pages = leaves.paginator.num_pages serializedObjects = [] for leave in leaves: serializedObjects.append(leave.serialize(maxDepth=1)) return self.respond( leaves=serializedObjects, previous_page_number=prevPageNo, next_page_number=nextPageNo, current_page_number=current_page_number, num_of_pages=num_of_pages, no_of_records=no_of_records, subscriber=subscriber_to_get.serialize(maxDepth=1) )
def get(self, request): auth_group = UserGroupManager.check_user_group(request.user) logged_in_employee = Subscriber.objects.get(user=request.user) context = { 'auth_group' : auth_group, 'subscriber_create_form' : SubscriberCreationForm( initial={ 'role' : Group.objects.get(name__exact=GROUP_NAME_MAP['LEAVE_APPROVER']).id } ), 'user_creation_form' : UserCreationForm(), 'logged_in_employee' : logged_in_employee, } return render(request, 'subscriber/account_create.html', context)
def get_all(self, page_no=1, no_of_records=NUMBER_OF_VALUES_PER_PAGE, show_all=True): auth_group = UserGroupManager.check_user_group(self.user) if not UserGroupManager.is_company_admin(self.user): return self.respond(is_saved=False, auth_errors='Permission Denied', subscribers=[]) logged_in_employee = Subscriber.objects.get(user=self.user) subscribers = Subscriber.objects.filter(client__id__exact=logged_in_employee.client.id).order_by('-created_on') show_all = bool(int(show_all)) prevPageNo = 0 nextPageNo = 0 current_page_number = 0 num_of_pages = subscribers.count() if not show_all: paginator = Paginator(subscribers, no_of_records) try: subscribers = paginator.page(page_no) except PageNotAnInteger: # If page is not an integer, deliver first page. subscribers = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. subscribers = paginator.page(paginator.num_pages) try: prevPageNo = subscribers.previous_page_number() except InvalidPage as e: prevPageNo = page_no try: nextPageNo = subscribers.next_page_number() except InvalidPage as e: nextPageNo = page_no current_page_number = subscribers.number num_of_pages = subscribers.paginator.num_pages serializedObjects = [] for subscriber in subscribers: serializedObjects.append(subscriber.serialize(maxDepth=1)) return self.respond( is_saved=True, subscribers=serializedObjects, previous_page_number=prevPageNo, next_page_number=nextPageNo, current_page_number=current_page_number, num_of_pages=num_of_pages, no_of_records=no_of_records )
def get(self, request, user_id): auth_group = UserGroupManager.check_user_group(request.user) user = User.objects.get(pk=int(user_id)) subscriber = Subscriber.objects.get(user__id__exact=int(user_id)) logged_in_employee = Subscriber.objects.get(user=request.user) if logged_in_employee.id != subscriber.id: if not UserGroupManager.is_company_admin(request.user): return http.HttpResponseRedirect(reverse('home_page')) password_change_form = PasswordChangeForm(user=request.user) if UserGroupManager.is_company_admin(request.user): password_change_form = AdminPasswordChangeForm(user=user) context = { 'auth_group' : auth_group, 'password_change_form' : password_change_form, 'subscriber_change_form' : SubscriberCreationForm(), 'user_change_form' : UserChangeForm(instance=subscriber.user), 'logged_in_employee' : logged_in_employee, 'user' : user, 'subscriber' : subscriber, 'user_id' : user_id } return render(request, 'subscriber/account_settings.html', context)
def get_pending_approvals_for_subscriber(self, user_id, page_no=INITIAL_PAGE_NO, no_of_records=NUMBER_OF_RECORDS_PER_PAGE, show_all=False, **kwargs): auth_group = UserGroupManager.check_user_group(self.user) logged_in_employee = Subscriber.objects.get(user=self.user) subscriber_to_get = Subscriber.objects.get(user__id__exact=user_id) is_company_admin = UserGroupManager.is_company_admin(self.user) if not (logged_in_employee.id == subscriber_to_get.id and UserGroupManager.can_approve_leave(self.user)): if not is_company_admin: return self.respond(is_saved=False, auth_errors='Permission Denied') if is_company_admin: leaves = Leave.objects.filter(status__exact=LeaveStatus.PENDING) else: leaves = Leave.objects.filter( approver=subscriber_to_get, status__exact=LeaveStatus.PENDING ) pending_approvals = self._prepare_search(leaves.order_by('-created_on'), **kwargs) show_all = bool(int(show_all)) prevPageNo = 0 nextPageNo = 0 current_page_number = 0 num_of_pages = pending_approvals.count() if not show_all: paginator = Paginator(pending_approvals, no_of_records) try: pending_approvals = paginator.page(page_no) except PageNotAnInteger: # If page is not an integer, deliver first page. pending_approvals = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. pending_approvals = paginator.page(paginator.num_pages) try: prevPageNo = pending_approvals.previous_page_number() except InvalidPage as e: prevPageNo = page_no try: nextPageNo = pending_approvals.next_page_number() except InvalidPage as e: nextPageNo = page_no current_page_number = pending_approvals.number num_of_pages = pending_approvals.paginator.num_pages serialized_objects = self.get(serializers.serialize( 'json', pending_approvals, indent=4, extras=['period'], relations=['requester', 'approver', 'type_of_leave'] )) print serialized_objects return self.respond( pending_approvals=serialized_objects, previous_page_number=prevPageNo, next_page_number=nextPageNo, current_page_number=current_page_number, num_of_pages=num_of_pages, no_of_records=no_of_records, subscriber=subscriber_to_get.serialize(maxDepth=1) )