def may_account(self): may_account = [] from cashflow import dauth for permission in dauth.get_permissions(self.user): if permission.startswith("accounting-"): may_account.append(permission[len("accounting-"):].lower()) return may_account
def expense_overview(request): if request.method == 'GET': if len(dauth.get_permissions(request.user)) > 0: return render( request, 'expenses/expense_list.html', {'expenses': models.Expense.objects.order_by('-id').all()}) else: raise Http404()
def user_list(request): if request.method == 'GET': if len(dauth.get_permissions(request.user)) > 0: return render( request, 'expenses/user_list.html', {'users': models.Profile.objects.order_by('-id').all()}) else: raise Http404()
def may_attest(self, expense_part=None): may_attest = [] for permission in dauth.get_permissions(self.user): if permission.startswith("attest-"): may_attest.append(permission[len("attest-"):].lower()) if expense_part is None: return may_attest return expense_part.committee_name.lower() in may_attest
def may_attest(self, expense_part=None): may_attest = [] for permission in dauth.get_permissions(self.user): if permission.startswith("attest-"): may_attest.append(permission[len("attest-"):].lower()) if expense_part is None: return may_attest return expense_part.committee_name.lower() in may_attest
def may_delete_invoice(self, invoice): if invoice is None or invoice.is_payed(): return False if 'attest-firmatecknare' in dauth.get_permissions(self.user): return True if invoice.owner.user.username == self.user.username: return True if all([self.may_attest(invoice_part) for invoice_part in invoice.invoicepart_set.all()]): return True return False
def may_delete(self, expense): if expense.reimbursement: return False if 'attest-firmatecknare' in dauth.get_permissions(self.user) and expense is not None: return True if expense.owner.user.username == self.user.username: return True for expense_part in expense.expensepart_set.all(): if self.may_attest(expense_part): return True return False
def may_account(self, expense=None, invoice=None): if 'accounting-*' in dauth.get_permissions(self.user) and (expense is not None or invoice is not None): return True may_account = [] for permission in dauth.get_permissions(self.user): if permission.startswith("accounting-"): may_account.append(permission[len("accounting-"):].lower()) if expense is None and invoice is None: return may_account if expense is not None: for ep in expense.expensepart_set.all(): if ep.committee_name.lower() in may_account: return True else: for ip in invoice.invoicepart_set.all(): if ip.committee_name.lower() in may_account: return True return False
def may_account(self, expense=None, invoice=None): if '*' in dauth.get_permissions(self.user) and (expense is not None or invoice is not None): return True may_account = [] for permission in dauth.get_permissions(self.user): if permission.startswith("accounting-"): may_account.append(permission[len("accounting-"):].lower()) if expense is None and invoice is None: return may_account if expense is not None: for ep in expense.expensepart_set.all(): if ep.committee_name.lower() in may_account: return True else: for ip in invoice.invoicepart_set.all(): if ip.committee_name.lower() in may_account: return True return False
def attested_expenses(request): if 'attest-firmatecknare' not in dauth.get_permissions(request.user): return HttpResponseForbidden("Du har inte rättigheter att se det här") expense_data = ExpensePart.objects \ .filter(attested_by__isnull=False) \ .filter(expense__created_date__year = str(datetime.now().year)) \ .values('committee_name', 'cost_centre_name', 'budget_line_name', 'expense__verification') \ .annotate(amount=Sum('amount')) invoice_data = InvoicePart.objects \ .filter(attested_by__isnull=False) \ .filter(invoice__created_date__year = str(datetime.now().year)) \ .values('committee_name', 'cost_centre_name', 'budget_line_name', 'invoice__verification') \ .annotate(amount=Sum('amount')) return JsonResponse({'invoices': list(invoice_data), 'expenses': list(expense_data)})
def budget_overview(request): if request.method == 'GET': cost_centres = budgetModels.CostCentre.objects.order_by('name') budget_lines = budgetModels.BudgetLine.objects.order_by('name') expense_parts = models.ExpensePart.objects committees = {} for committee in budgetModels.Committee.objects.filter( id=55).order_by('name'): committees[committee.id] = { 'name': committee.name, 'cost_centres': {} } for cost_centre in cost_centres: committees[committee.id]['cost_centres'][cost_centre.id] = { 'name': cost_centre.name, 'budget_lines': {} } for budget_line in budget_lines: committees[committee.id]['cost_centres'][ cost_centre.id]['budget_lines'][budget_line.id] = { 'name': budget_line.name, 'amount': float(budget_line.amount), 'spent': float( expense_parts.filter( budget_line=budget_line.id).aggregate( Sum('amount'))['amount__sum'] or 0) } if len(dauth.get_permissions(request.user)) > 0: return render(request, 'budget/overview.html', {'committees': committees}) else: raise Http404()
def may_pay(self): from cashflow import dauth return 'pay' in dauth.get_permissions(self.user)
def may_confirm(self): return 'confirm' in dauth.get_permissions(self.user)
def may_pay(self): return 'pay' in dauth.get_permissions(self.user)
def may_confirm(self): return 'confirm' in dauth.get_permissions(self.user)
def may_pay(self): return 'pay' in dauth.get_permissions(self.user)