62 lines
1.9 KiB
Python
62 lines
1.9 KiB
Python
from fastapi import APIRouter, Depends, Request
|
|
from fastapi.responses import HTMLResponse
|
|
|
|
from src.depends.services import get_service
|
|
from src.logging.get_logger import get_logger
|
|
from src.model.internal.session import UserSession
|
|
from src.model.view.menu_view_model import MenuViewModel
|
|
from src.model.view.user_view_model import UserViewModel
|
|
from src.router.session_router import AuthenticatedRoute
|
|
from src.services.batch_status_service import BatchStatusService
|
|
from src.services.session_service import set_session
|
|
from src.templates import templates
|
|
|
|
logger = get_logger('MeDaCA機能メニュー')
|
|
|
|
router = APIRouter()
|
|
router.route_class = AuthenticatedRoute
|
|
|
|
#########################
|
|
# Views #
|
|
#########################
|
|
|
|
|
|
@router.get('/', response_class=HTMLResponse)
|
|
def menu_view(
|
|
request: Request,
|
|
batch_status_service: BatchStatusService = Depends(get_service(BatchStatusService))
|
|
):
|
|
session: UserSession = request.session
|
|
logger.info(f'UserID: {session.user_id}')
|
|
# 日付マスターからバッチ情報を取得する
|
|
hdke_tbl_record = batch_status_service.hdke_table_record
|
|
|
|
batch_status = hdke_tbl_record.bch_actf
|
|
user = UserViewModel(
|
|
doc_flg=session.doc_flg,
|
|
inst_flg=session.inst_flg,
|
|
bio_flg=session.bio_flg,
|
|
master_mainte_flg=session.master_mainte_flg
|
|
)
|
|
menu = MenuViewModel(
|
|
batch_status=batch_status,
|
|
user_model=user
|
|
)
|
|
# セッション書き換え
|
|
session.update(
|
|
actions=[
|
|
UserSession.last_access_time.set(UserSession.new_last_access_time()),
|
|
UserSession.record_expiration_time.set(UserSession.new_record_expiration_time()),
|
|
]
|
|
)
|
|
set_session(session)
|
|
templates_response = templates.TemplateResponse(
|
|
'menu.html',
|
|
{
|
|
'request': request,
|
|
'menu': menu
|
|
},
|
|
headers={'session_key': session.session_key}
|
|
)
|
|
return templates_response
|