Skip to content
Snippets Groups Projects
Select Git revision
  • 26009dcd04b25af87b66e3a8740cfc546891fd2d
  • master default protected
  • vertical_relations
  • lu_without_semantic_frames
  • hierarchy
  • additional-unification-filters
  • v0.1.1
  • v0.1.0
  • v0.0.9
  • v0.0.8
  • v0.0.7
  • v0.0.6
  • v0.0.5
  • v0.0.4
  • v0.0.3
  • v0.0.2
  • v0.0.1
17 results

views.py

Blame
  • views.py 2.69 KiB
    from django.apps import apps
    from django.contrib.auth.decorators import login_required, permission_required
    from django.contrib.auth.models import User
    from django.contrib.contenttypes.models import ContentType
    from django.contrib.sites.shortcuts import get_current_site
    from django.http import JsonResponse
    from django.shortcuts import get_object_or_404, render, redirect
    from django.utils.translation import gettext_lazy as _
    from django.views.decorators.http import require_http_methods
    
    from financial_settlement.forms import FinStatementForm
    from financial_settlement.models import FinStatement
    from unifier.choices import UnifiedFrameStatus
    from unifier.models import UnifiedFrame
    from users.forms import UserForm, UserProfileForm, NoteForm
    
    def statement_list(request):
    
        current_user = request.user
        cat_edit_statement = current_user.has_perm(FinStatement, 'edit_statement')
    
        statements = FinStatement.objects.order_by('statement_id') if cat_edit_statement else FinStatement.objects.filter(user=current_user).order_by('statement_id')
        for statement in statements:
            statement.unified_frame_count = statement.unified_frame.count()
            statement.current_cost = statement.unified_frame.count() * statement.price_per_unified_frame
        return render(request, 'fin_statements_list.html', {'statements': statements})
    
    @permission_required('finstatement.add_statement')
    def statement_add(request):
        if request.method == 'POST':
            form = FinStatementForm(instance=FinStatement(), data=request.POST)
            if form.is_valid():
                statement = form.save()
                return redirect('financial_settlement:statement_list')
        else:
            form = FinStatementForm(instance=FinStatement())
        return render(request, 'fin_statement_form.html', {'form': form, 'title': _('Dodaj umowę')})
    
    @permission_required('finstatement.change_statement')
    def statement_edit(request, pk):
        statement = get_object_or_404(FinStatement, pk=pk)
        if request.method == 'POST':
            form = FinStatementForm(instance=statement, data=request.POST)
            if form.is_valid():
                form.save()
                return redirect('financial_settlement:statement_list')
        else:
            form = FinStatementForm(instance=statement)
        return render(request, 'fin_statement_form.html', {'form': form, 'title': _('Edytuj umowę')})
    
    def statement_detail(request, pk):
        statement = get_object_or_404(FinStatement, pk=pk)
        unified_frames = statement.unified_frame;
    
        return render(request, 'fin_statement_details.html',
                      {'statement': statement,
                       'unified_frame_count': unified_frames.count(),
                       'current_cost': unified_frames.count() * statement.price_per_unified_frame})