feat: refine subject visits and project workflows
Add early termination visit workflow with ordering, non-applicable visit handling, visit window display, and medication adherence support. Extend monitoring visit issue template fields, site scoping, setup draft project info handling, login security UI, attachment behavior, and related tests/migrations.
This commit is contained in:
@@ -21,6 +21,7 @@ from app.models.finance_special import FinanceSpecial
|
||||
from app.models.kickoff_meeting import KickoffMeeting
|
||||
from app.models.knowledge_note import KnowledgeNote
|
||||
from app.models.milestone import Milestone
|
||||
from app.models.monitoring_visit_issue import MonitoringVisitIssue
|
||||
from app.models.site import Site
|
||||
from app.models.special_expense import SpecialExpense
|
||||
from app.models.startup_ethics import StartupEthics
|
||||
@@ -328,6 +329,11 @@ async def delete_site_and_related(db: AsyncSession, site: Site) -> None:
|
||||
await db.execute(delete(ContractFee).where(ContractFee.center_id == site_id))
|
||||
await db.execute(delete(SpecialExpense).where(SpecialExpense.center_id == site_id))
|
||||
await db.execute(delete(DrugShipment).where(DrugShipment.center_id == site_id))
|
||||
await db.execute(
|
||||
update(MonitoringVisitIssue)
|
||||
.where(MonitoringVisitIssue.site_id == site_id)
|
||||
.values(site_id=None)
|
||||
)
|
||||
|
||||
await db.execute(
|
||||
delete(TrainingAuthorization).where(
|
||||
|
||||
Reference in New Issue
Block a user