From 091645a299a19997f8f8b1e480e7259abbc8f224 Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Tue, 3 Feb 2026 21:54:23 +0000 Subject: [PATCH] ver 7.1 --- core/__pycache__/views.cpython-311.pyc | Bin 14478 -> 14893 bytes core/templates/core/log_attendance.html | 5 +- core/templates/core/manage_resources.html | 150 ++++++++++++++-------- core/views.py | 10 +- 4 files changed, 107 insertions(+), 58 deletions(-) diff --git a/core/__pycache__/views.cpython-311.pyc b/core/__pycache__/views.cpython-311.pyc index 3209f0bd6d3be225a35547dd8b9f44d0716937f7..39f37601bf7c81fb1730ebc9503aff333c953936 100644 GIT binary patch delta 2439 zcmZuzdu&rx7{9l#wd=ZW>uc=M#~yvap6&%>KoNm$PDU6;Y_gQnd)d16_Lg(+7~o{0 z#AqZEJP9Cze;5!6nvgWagg?YYDM#m?I+5s`9DrX4$pIfE$fy%2@lT+rGh={m3#@GRGp}n zRwPzPHHjLjHc`uDW!XBZK2Z-eCpfZxDUb*NU4E2H1O+ExNT>j85Gny1g(|=%!3EeX zxB;cX3WYHTDdwaCnY(jPAbXNgiPA$ht`+PgCMUcJg|Oa<5$qH zs#+`qxM~f(S9O~op|@ONek=Xg)x}TKPIntWM0dMa@`Lmp_qrv;@7&3{F*5I0J<(bJv~@1)l}L#>_2sA4Kal;r)QW)Z}! zsEV3NN$nTO^C&VZq8h6t>uHBKY~O$@*x3U#<@F}E;6C+Nx(gm;E{0hi67Jl>go4^mvwU>DxU8t=eK@Z2w z%yPo+y&4$g83ZGW3}ijhsHPYIfoJ4yTNHt|D+!*w6=Rt$g4 z2%(7jy97*_CwG68FYFw%e$E=yoJV*K0X?CZ0obMVlPjcDE;S)0iKxgkBrPiB2q>JP z*ZpUDhk#1seoMm&1kUfi$#dK(ZjPH;l5he)jThp`C-ivWC4P?n5)e$FV5R=<0NoXI z3WE8eMvLlNUd9QQIr9`IHXA^*62{2~oKW((j2HxKju&jeFFj`x>}QQ1gB6$ItB)~G z_0hBD8WYr?gH8uq=eL0XycUNavI${7z$IQY zRMq?roxSsrHJDL?P;EiYvN5e@APKEQxfG-B^KGzk4)?49&`KmxQNWGNd9gAgqGXf> z>QQ7Sk%{hSYY1TrC&iQic}X0|XH{+jDrR8;)Ji28@;<2^%!}kGeGqJc3XFy7N{@ri zMffT|(b3QbW2wzWPlQ&@-*$SB&HvzRxZ!LlHufwydv7{>i~YkloWn)u@Q=R6#X#d? zsOfzDVng%!Xfd!GK3^KYb`-nEuMA!pERK!qJit38rsk?U9KfHPsoM1y0!%Ai_sY03 zchMbQut#p%BSlk$uq5X1cAryR3uv%gJd3(4O_!TBYfEG^3fd92(0H^CQeZslGoJ&- z^}@ku)&Nc7=at_YLvNr8<~%{i6D-H2>}O{U6mGU{pdF??JyTvRjaXDO$ckpoXH)84nMh=sUhVmO-Y!g~auagfBy=2B{O}lJ ztt*7Zge4_DK>AyPR%&KkuCT{av*I5BH6uOz6EKLH_$INZgLNTt9H$s;<_KmLN#GQ% zs$t##zI6Z&oym&p$u(eN5i1wy-QKH}O-1g1pGA75FG#=Wv(aK--s$C|cerKfprfnT InsC?u0O`;=tpET3 delta 2104 zcmZuyU2GIp6yDjt?y_{3?f$f7x7+Pfx*cdsX|c5YBNPf0Bw|!H>bUH^EL&!FmNT;; zgwO_jFfmc#1`|j${-YsAlhu&;qKS!bCYTr>#s`gw51Ob1UyQzZ&K*h(agzCR&bjB_ zd;af-_DiRtH`?2mdGPz_>5H}3hc8FFl%FmaFU*J8GCgUeN+}~TWptOi z6%Pxuh`!Rulrl(r*m6B<^ptv#ZhziW%CRV7FN-1O*$Tuy7Dp_w4#ZU~f!NQIh^v`$ z#G|Huq00}cJ|_sg&Nw(B;H)M_71nx3*&k2_#2>+H`6wzmZRW8#Ua>7FP%)cz8)7Jg z6$Ekde%s+p50OFA^wrHXj-Qon4oMPrh(xGARU~qdKqXj1FeGL}>y%+}K9mdQNH8JZ z2z4tX;rHNHdd;#OKOr0-dC=hY z36nvB^bd+pQhiEPe3#lcJW7JNQ~_?7r@0ekT<11-{8srihyAqVv$(CsVXK%;56o|) z9nuWLO$=F-@a&xj3J!IrK{rc>@H=dbv^r*5~Au*eVD!7x$%8ePY<5H zR8I1qfO`*R2QCoI6HsKV0D^Q9_J}WX>A(W=*Tna^>)9EkDzts^^CLn0pLadta&Nct zjJVnRgfb?4dFHj_Vm`mpk6jQDnZ99m5cSYP3Nt)R&_wt^alDO_uz;i*21a6O{F1d* zl95T!O>l~Uu2qB51813GVr6Ld*#?J8B3&3N%6z14vs%@;2HY~6P~nz$k>B=0tLxRaCjv`b*WlSl@i;YhT|*+C(J;lnL-6EEbczeRJ!` z=uV|d8`Z2^FEW0NwEr(^9kj3x!3kD?(<}{=WGP5MtSmPfLOHJj=yu(Ne(}%x;=Dnd z!_&`Ic*Cxlbr% zM0emLuxTRqqzr(J%mX9n-e|Z)hQ3Q6D{304|BeP^rSXa#lT{}`i
- +
+ + Manage Resources +
{% for checkbox in form.workers %}
diff --git a/core/templates/core/manage_resources.html b/core/templates/core/manage_resources.html index 0de0a83..b79cd4c 100644 --- a/core/templates/core/manage_resources.html +++ b/core/templates/core/manage_resources.html @@ -7,10 +7,22 @@

Manage Resources

-

Toggle the active status of workers, projects, and teams. Inactive items will be hidden from selection forms.

+

Quickly toggle the active status of workers, projects, and teams. Inactive items will be hidden from selection forms.

+ +
+ +
+
-{% endblock %} + + +{% endblock %} \ No newline at end of file diff --git a/core/views.py b/core/views.py index c500732..241de5c 100644 --- a/core/views.py +++ b/core/views.py @@ -8,6 +8,7 @@ from django.db.models import Sum, Q from django.core.mail import send_mail from django.conf import settings from django.contrib import messages +from django.http import JsonResponse from .models import Worker, Project, Team, WorkLog, PayrollRecord from .forms import WorkLogForm from datetime import timedelta @@ -178,6 +179,13 @@ def toggle_resource_status(request, model_type, pk): obj.is_active = not obj.is_active obj.save() + if request.headers.get('x-requested-with') == 'XMLHttpRequest': + return JsonResponse({ + 'success': True, + 'is_active': obj.is_active, + 'message': f"{obj.name} is now {'Active' if obj.is_active else 'Inactive'}." + }) + return redirect('manage_resources') def payroll_dashboard(request): @@ -294,4 +302,4 @@ def payslip_detail(request, pk): 'record': record, 'logs': logs, } - return render(request, 'core/payslip.html', context) \ No newline at end of file + return render(request, 'core/payslip.html', context)