Add staff visibility workstation enrollment registration vault and category task views

This commit is contained in:
A R R R Associates
2026-09-02 14:05:20 +05:30
parent 1fe1597d6f
commit 97777e13a1
22 changed files with 538 additions and 103 deletions
File diff suppressed because one or more lines are too long
+22 -1
View File
@@ -10,6 +10,8 @@ from app.core.security.session_auth import get_current_user
from app.core.templating import templates
from app.modules.clients.models import Client, ClientBusinessUnit, ClientBranch
from app.modules.consultants.models import ConsultantProfile
from app.modules.credential_vault.models import CredentialVaultEntry
from app.modules.credential_vault.service import can_manage_vault, can_view_entry
from app.modules.core.rbac.deps import get_user_permissions, get_user_roles
from app.modules.core.rbac.permission_guard import require_permission
from app.modules.registrations.models import *
@@ -432,7 +434,26 @@ def client_register(request:Request,client_id:int):
dscs=db.execute(select(ClientDigitalSignature,ClientRelatedPerson).join(ClientRelatedPerson).where(ClientDigitalSignature.client_id==client_id).order_by(ClientDigitalSignature.expires_on)).all()
rules=db.execute(select(RegistrationLifecycleRule).where(or_(RegistrationLifecycleRule.tenant_id.is_(None),RegistrationLifecycleRule.tenant_id==client.tenant_id),RegistrationLifecycleRule.is_active.is_(True))).scalars().all()
consultants=db.execute(select(ConsultantProfile).where(ConsultantProfile.tenant_id==client.tenant_id,ConsultantProfile.is_active.is_(True))).scalars().all()
return templates.TemplateResponse("modules/registrations/templates/registrations/client.html",_ctx(request,user,db,client=client,registrations=regs,people=people,dscs=dscs,types=db.execute(select(RegistrationType).where(RegistrationType.is_active.is_(True)).order_by(RegistrationType.sort_order)).scalars().all(),rules=rules,consultants=consultants,can_manage=_can_manage(db,user)))
vault_rows = db.execute(
select(CredentialVaultEntry).where(
CredentialVaultEntry.tenant_id == client.tenant_id,
CredentialVaultEntry.client_id == client.id,
CredentialVaultEntry.status != "archived",
).order_by(CredentialVaultEntry.title)
).scalars().all()
vault_by_registration = {}
for entry in vault_rows:
if entry.registration_id and can_view_entry(db, user, entry, _branch(request, user)):
vault_by_registration.setdefault(int(entry.registration_id), []).append(entry)
return templates.TemplateResponse(
"modules/registrations/templates/registrations/client.html",
_ctx(
request,user,db,client=client,registrations=regs,people=people,dscs=dscs,
types=db.execute(select(RegistrationType).where(RegistrationType.is_active.is_(True)).order_by(RegistrationType.sort_order)).scalars().all(),
rules=rules,consultants=consultants,can_manage=_can_manage(db,user),
can_manage_vault=can_manage_vault(db,user),vault_by_registration=vault_by_registration,
),
)
@router.post("/clients/{client_id}/people")
async def add_person(request:Request,client_id:int,person_type:str=Form(...),full_name:str=Form(...),designation:str=Form(""),pan:str=Form(""),din:str=Form(""),date_of_birth:str=Form(""),appointment_date:str=Form(""),mobile:str=Form(""),email:str=Form(""),authorised_signatory:bool=Form(False),notes:str=Form(""),csrf_token:str=Form(...)):