Add staff visibility workstation enrollment registration vault and category task views
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -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(...)):
|
||||
|
||||
Reference in New Issue
Block a user