Exemplo n.º 1
0
	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)
Exemplo n.º 2
0
	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)
Exemplo n.º 3
0
	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)
		)
Exemplo n.º 4
0
	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)
Exemplo n.º 5
0
	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
		)
Exemplo n.º 6
0
	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)
Exemplo n.º 7
0
	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)
		)