forked from DGNum/gestioCOF
Merge branch 'aureplop/1_11/fix_querysets' into 'supportBDS'
Aureplop/1 11/fix querysets See merge request !183
This commit is contained in:
commit
33dedc7474
|
@ -841,34 +841,40 @@ def account_read_json(request):
|
||||||
'trigramme': account.trigramme }
|
'trigramme': account.trigramme }
|
||||||
return JsonResponse(data)
|
return JsonResponse(data)
|
||||||
|
|
||||||
|
|
||||||
@teamkfet_required
|
@teamkfet_required
|
||||||
def kpsul_checkout_data(request):
|
def kpsul_checkout_data(request):
|
||||||
pk = request.POST.get('pk', 0)
|
pk = request.POST.get('pk', 0)
|
||||||
if not pk:
|
if not pk:
|
||||||
pk = 0
|
pk = 0
|
||||||
data = (Checkout.objects
|
|
||||||
.annotate(
|
checkout = get_object_or_404(Checkout, pk=pk)
|
||||||
last_statement_by_first_name=F('statements__by__profile__user__first_name'),
|
data = {
|
||||||
last_statement_by_last_name=F('statements__by__profile__user__last_name'),
|
'id': checkout.id, 'name': checkout.name, 'balance': checkout.balance,
|
||||||
last_statement_by_trigramme=F('statements__by__trigramme'),
|
'valid_from': checkout.valid_from, 'valid_to': checkout.valid_to
|
||||||
last_statement_balance=F('statements__balance_new'),
|
}
|
||||||
last_statement_at=F('statements__at'))
|
|
||||||
.values(
|
try:
|
||||||
'id', 'name', 'balance', 'valid_from', 'valid_to',
|
last_statement = (
|
||||||
'last_statement_balance', 'last_statement_at',
|
CheckoutStatement
|
||||||
'last_statement_by_trigramme', 'last_statement_by_last_name',
|
.objects
|
||||||
'last_statement_by_first_name')
|
.select_related('by', 'by__profile', 'by__profile__user')
|
||||||
.select_related(
|
.filter(checkout=checkout)
|
||||||
'statements'
|
.latest('at')
|
||||||
'statements__by',
|
)
|
||||||
'statements__by__profile__user')
|
data['last_statement_balance'] = last_statement.balance_new
|
||||||
.filter(pk=pk)
|
data['last_statement_at'] = last_statement.at
|
||||||
.order_by('statements__at')
|
data['last_statement_by_trigramme'] = last_statement.by.trigramme
|
||||||
.last())
|
data['last_statement_by_last_name'] = \
|
||||||
if data is None:
|
last_statement.by.profile.user.last_name
|
||||||
raise Http404
|
data['last_statement_by_first_name'] = \
|
||||||
|
last_statement.by.profile.user.first_name
|
||||||
|
except CheckoutStatement.DoesNotExist:
|
||||||
|
pass
|
||||||
|
|
||||||
return JsonResponse(data)
|
return JsonResponse(data)
|
||||||
|
|
||||||
|
|
||||||
@teamkfet_required
|
@teamkfet_required
|
||||||
def kpsul_update_addcost(request):
|
def kpsul_update_addcost(request):
|
||||||
addcost_form = AddcostForm(request.POST)
|
addcost_form = AddcostForm(request.POST)
|
||||||
|
@ -1273,19 +1279,19 @@ def history_json(request):
|
||||||
# Récupération des paramètres
|
# Récupération des paramètres
|
||||||
from_date = request.POST.get('from', None)
|
from_date = request.POST.get('from', None)
|
||||||
to_date = request.POST.get('to', None)
|
to_date = request.POST.get('to', None)
|
||||||
limit = request.POST.get('limit', None);
|
limit = request.POST.get('limit', None)
|
||||||
checkouts = request.POST.getlist('checkouts[]', None)
|
checkouts = request.POST.getlist('checkouts[]', None)
|
||||||
accounts = request.POST.getlist('accounts[]', None)
|
accounts = request.POST.getlist('accounts[]', None)
|
||||||
|
|
||||||
# Construction de la requête (sur les opérations) pour le prefetch
|
# Construction de la requête (sur les opérations) pour le prefetch
|
||||||
queryset_prefetch = Operation.objects.select_related(
|
queryset_prefetch = Operation.objects.select_related(
|
||||||
'canceled_by__trigramme', 'addcost_for__trigramme',
|
'canceled_by', 'addcost_for',
|
||||||
'article__name')
|
'article')
|
||||||
|
|
||||||
# Construction de la requête principale
|
# Construction de la requête principale
|
||||||
opegroups = (OperationGroup.objects
|
opegroups = (OperationGroup.objects
|
||||||
.prefetch_related(Prefetch('opes', queryset = queryset_prefetch))
|
.prefetch_related(Prefetch('opes', queryset = queryset_prefetch))
|
||||||
.select_related('on_acc__trigramme', 'valid_by__trigramme')
|
.select_related('on_acc', 'valid_by')
|
||||||
.order_by('at')
|
.order_by('at')
|
||||||
)
|
)
|
||||||
# Application des filtres
|
# Application des filtres
|
||||||
|
|
Loading…
Reference in a new issue