From 04396eb1d53b8f571bd92b6c429784595d27e0f1 Mon Sep 17 00:00:00 2001 From: "shimoda.m@nds-tyo.co.jp" Date: Tue, 30 May 2023 15:20:40 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=E3=82=AB=E3=83=A9=E3=83=A0=E5=A4=89?= =?UTF-8?q?=E6=9B=B4=E3=81=AB=E5=AF=BE=E5=BF=9C=EF=BC=88=E7=94=BB=E9=9D=A2?= =?UTF-8?q?=E3=81=8C=E3=81=BE=E3=81=A0=E8=A1=A8=E7=A4=BA=E3=81=A7=E3=81=8D?= =?UTF-8?q?=E3=81=A6=E3=81=84=E3=81=AA=E3=81=84=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ecs/jskult-webapp/.env.example | 2 + ecs/jskult-webapp/README.md | 2 +- ecs/jskult-webapp/src/controller/bio.py | 5 +- .../src/controller/bio_download.py | 8 +-- .../src/model/db/bio_sales_view.py | 24 +++---- .../src/model/db/pharmacy_product_master.py | 2 +- .../src/model/db/wholesaler_master.py | 4 +- .../src/model/view/bio_disp_model.py | 2 +- .../src/model/view/bio_view_model.py | 2 +- .../repositories/bio_sales_view_repository.py | 34 +++++----- .../pharmacy_product_master_repository.py | 8 +-- .../wholesaler_master_repository.py | 12 ++-- .../src/services/logout_service.py | 65 +++++++++++++++++++ ecs/jskult-webapp/src/system_var/constants.py | 18 ++--- .../src/system_var/environment.py | 3 + .../src/templates/bioSearchList.html | 50 +++++++------- 16 files changed, 158 insertions(+), 83 deletions(-) create mode 100644 ecs/jskult-webapp/src/services/logout_service.py diff --git a/ecs/jskult-webapp/.env.example b/ecs/jskult-webapp/.env.example index f330f3d5..dddde44d 100644 --- a/ecs/jskult-webapp/.env.example +++ b/ecs/jskult-webapp/.env.example @@ -21,5 +21,7 @@ DB_SCHEMA=src05 AWS_REGION=ap-northeast-1 AUTHORIZE_ENDPOINT=oauth2/authorize TOKEN_ENDPOINT=oauth2/token +LOGOUT_ENDPOINT=logout BIO_SEARCH_RESULT_MAX_COUNT=35000 SESSION_EXPIRE_MINUTE=20 +LOG_LEVEL=DEBUG \ No newline at end of file diff --git a/ecs/jskult-webapp/README.md b/ecs/jskult-webapp/README.md index 783f82a2..97632b8f 100644 --- a/ecs/jskult-webapp/README.md +++ b/ecs/jskult-webapp/README.md @@ -23,7 +23,7 @@ - Merck_NewDWH開発2021のWiki、[Python環境構築](https://nds-tyo.backlog.com/alias/wiki/1874930)を参照 - 「Pipenvの導入」までを行っておくこと - 構築完了後、プロジェクト配下で以下のコマンドを実行し、Pythonの仮想環境を作成する - - `pipenv install --python ` + - `pipenv install --python --dev` - この手順で出力される仮想環境のパスは、後述するVSCodeの設定手順で使用するため、控えておく - MySQLの環境構築 diff --git a/ecs/jskult-webapp/src/controller/bio.py b/ecs/jskult-webapp/src/controller/bio.py index 188560fb..108fc747 100644 --- a/ecs/jskult-webapp/src/controller/bio.py +++ b/ecs/jskult-webapp/src/controller/bio.py @@ -4,6 +4,7 @@ from fastapi import APIRouter, Depends, HTTPException, Request from starlette import status 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.request.bio import BioModel from src.model.view.bio_view_model import BioViewModel @@ -16,6 +17,7 @@ from src.templates import templates router = APIRouter() router.route_class = AuthenticatedRoute +logger = get_logger('生物由来参照') ######################### # Views # @@ -32,6 +34,8 @@ def bio_view( # バッチ処理中の場合、機能を利用させない if batch_status_service.is_batch_processing(): raise HTTPException(status_code=status.HTTP_403_FORBIDDEN, detail=constants.LOGOUT_REASON_BATCH_PROCESSING) + + logger.debug(f'UserId: {session.user_id}') # 検索項目の取得 bio = bio_service.prepare_bio_view(session) # セッション書き換え @@ -59,7 +63,6 @@ def search_bio( bio_service: BioViewService = Depends(get_service(BioViewService)), batch_status_service: BatchStatusService = Depends(get_service(BatchStatusService)) ): - # error_log(date("Y/m/d H:i:s") . " [INFO] UserId:" . $UserId . "\r\n", 3, "$execLog"); session: UserSession = request.session # バッチ処理中の場合、機能を利用させない if batch_status_service.is_batch_processing(): diff --git a/ecs/jskult-webapp/src/controller/bio_download.py b/ecs/jskult-webapp/src/controller/bio_download.py index 0d172e8a..863c41e4 100644 --- a/ecs/jskult-webapp/src/controller/bio_download.py +++ b/ecs/jskult-webapp/src/controller/bio_download.py @@ -77,10 +77,10 @@ async def download_bio_data( extract_df.loc[:, 'lot_no_err_flg'] = extract_df['lot_no_err_flg'].apply( lambda key: constants.LOT_NO_ERR_FLG_JP_NAME.get(key)) # 訂正前伝票管理番号がセットされているときのみ修正日時、修正者、エラー詳細種別をセット - extract_df.loc[:, 'ins_dt'] = extract_df['bef_slip_mgt_no'].apply( - lambda bef_slip_mgt_no: extract_df['ins_dt'] if bef_slip_mgt_no is not None else '') - extract_df.loc[:, 'ins_usr'] = extract_df['bef_slip_mgt_no'].apply( - lambda bef_slip_mgt_no: extract_df['ins_usr'] if bef_slip_mgt_no is not None else '') + extract_df.loc[:, 'ins_dt'] = extract_df['bef_slip_mgt_num'].apply( + lambda bef_slip_mgt_num: extract_df['ins_dt'] if bef_slip_mgt_num is not None else '') + extract_df.loc[:, 'ins_usr'] = extract_df['bef_slip_mgt_num'].apply( + lambda bef_slip_mgt_num: extract_df['ins_usr'] if bef_slip_mgt_num is not None else '') # 種別によって出力を変える local_file_path = '' diff --git a/ecs/jskult-webapp/src/model/db/bio_sales_view.py b/ecs/jskult-webapp/src/model/db/bio_sales_view.py index 92288443..9fd90ed7 100644 --- a/ecs/jskult-webapp/src/model/db/bio_sales_view.py +++ b/ecs/jskult-webapp/src/model/db/bio_sales_view.py @@ -15,28 +15,28 @@ class BioSalesViewModel(BaseDBModel): rec_tran_kbn: Optional[str] rev_hsdnymd_wrk: Optional[str] rev_hsdnymd_srk: Optional[str] - rec_urag_no: Optional[str] - rec_comm_nm: Optional[str] - rec_nnskfcl_nm: Optional[str] - rec_nnsk_fcl_addr: Optional[str] + rec_urag_num: Optional[str] + rec_comm_name: Optional[str] + rec_nonyu_fcl_name: Optional[str] + rec_nonyu_fcl_addr: Optional[str] rec_lot_num: Optional[str] - rec_amt: Optional[str] + rec_qty: Optional[str] rec_ymd: Optional[str] sale_data_cat: Optional[str] - slip_file_nm: Optional[str] - slip_mgt_no: Optional[str] + slip_file_name: Optional[str] + slip_mgt_num: Optional[str] row_num: Optional[int] hsdn_ymd: Optional[str] exec_dt: Optional[str] v_tran_cd: Optional[int] - tran_kbn_nm: Optional[str] + tran_kbn_name: Optional[str] whs_org_cd: Optional[str] v_whsorg_cd: Optional[str] - whs_org_nm: Optional[str] + whs_org_name: Optional[str] whs_org_kn: Optional[str] v_whs_cd: Optional[int] - whs_nm: Optional[str] - nnsk_cd: Optional[str] + whs_name: Optional[str] + nonyu_fcl_cd: Optional[str] v_inst_cd: Optional[str] v_inst_kn: Optional[str] v_inst_nm: Optional[str] @@ -53,7 +53,7 @@ class BioSalesViewModel(BaseDBModel): fcl_exis_kbn: Optional[str] amt: Optional[int] slip_org_kbn: Optional[str] - bef_slip_mgt_no: Optional[str] + bef_slip_mgt_num: Optional[str] lot_no_err_flg: Optional[str] iko_flg: Optional[str] kjyo_ym: Optional[str] diff --git a/ecs/jskult-webapp/src/model/db/pharmacy_product_master.py b/ecs/jskult-webapp/src/model/db/pharmacy_product_master.py index 863fd87d..2f498246 100644 --- a/ecs/jskult-webapp/src/model/db/pharmacy_product_master.py +++ b/ecs/jskult-webapp/src/model/db/pharmacy_product_master.py @@ -4,4 +4,4 @@ from src.model.db.base_db_model import BaseDBModel class PharmacyProductMasterModel(BaseDBModel): - mkr_cd_nm: Optional[str] + mkr_cd_name: Optional[str] diff --git a/ecs/jskult-webapp/src/model/db/wholesaler_master.py b/ecs/jskult-webapp/src/model/db/wholesaler_master.py index 762711a5..b24f58b7 100644 --- a/ecs/jskult-webapp/src/model/db/wholesaler_master.py +++ b/ecs/jskult-webapp/src/model/db/wholesaler_master.py @@ -6,5 +6,5 @@ from src.model.db.base_db_model import BaseDBModel class WholesalerMasterModel(BaseDBModel): rec_whs_cd: Optional[str] rec_whs_sub_cd: Optional[str] - nm: Optional[str] - whs_nm: Optional[str] + name: Optional[str] + whs_name: Optional[str] diff --git a/ecs/jskult-webapp/src/model/view/bio_disp_model.py b/ecs/jskult-webapp/src/model/view/bio_disp_model.py index 42bd0f42..e78d4f29 100644 --- a/ecs/jskult-webapp/src/model/view/bio_disp_model.py +++ b/ecs/jskult-webapp/src/model/view/bio_disp_model.py @@ -14,6 +14,6 @@ class BisDisplayModel(BioSalesViewModel): self.lot_no_err_flg = constants.LOT_NO_ERR_FLG_JP_NAME.get(self.lot_no_err_flg) # 訂正前伝票管理番号がセットされているときのみ修正日時、修正者、エラー詳細種別をセット - if (self.bef_slip_mgt_no is None): + if (self.bef_slip_mgt_num is None): self.ins_dt = "" self.ins_usr = "" diff --git a/ecs/jskult-webapp/src/model/view/bio_view_model.py b/ecs/jskult-webapp/src/model/view/bio_view_model.py index 1c6c98e3..933f76a4 100644 --- a/ecs/jskult-webapp/src/model/view/bio_view_model.py +++ b/ecs/jskult-webapp/src/model/view/bio_view_model.py @@ -23,7 +23,7 @@ class BioViewModel(BaseModel): def display_wholesaler_names(self): display_names = [ - f'{whs_model.rec_whs_cd}-{whs_model.rec_whs_sub_cd}:{whs_model.nm}' + f'{whs_model.rec_whs_cd}-{whs_model.rec_whs_sub_cd}:{whs_model.name}' for whs_model in self.whs_models ] return display_names diff --git a/ecs/jskult-webapp/src/repositories/bio_sales_view_repository.py b/ecs/jskult-webapp/src/repositories/bio_sales_view_repository.py index c9a60c30..5e590314 100644 --- a/ecs/jskult-webapp/src/repositories/bio_sales_view_repository.py +++ b/ecs/jskult-webapp/src/repositories/bio_sales_view_repository.py @@ -1,10 +1,13 @@ from src.db import sql_condition as condition from src.db.sql_condition import SQLCondition +from src.logging.get_logger import get_logger from src.model.db.bio_sales_view import BioSalesViewModel from src.model.request.bio import BioModel from src.repositories.base_repository import BaseRepository from src.util.string_util import is_not_empty +logger = get_logger('生物由来参照') + class BioSalesViewRepository(BaseRepository): FETCH_SQL = """\ @@ -12,19 +15,19 @@ class BioSalesViewRepository(BaseRepository): ( CASE WHEN LEFT(bs.v_tran_cd, 1) = 2 - AND bs.amt >= 1 THEN CONCAT('-', bs.amt) - ELSE bs.amt + AND bs.qty >= 1 THEN CONCAT('-', bs.qty) + ELSE bs.qty END ) AS amt_fugo, bs.*, - ln.ser_no, + ln.ser_num, ln.lot_num, ln.expr_dt FROM src05.bio_sales_view bs LEFT OUTER JOIN src05.lot_num_mst ln - ON bs.mkr_cd = ln.ser_no + ON bs.mkr_cd = ln.ser_num AND bs.rec_lot_num = ln.lot_num WHERE {where_clause} @@ -32,25 +35,23 @@ class BioSalesViewRepository(BaseRepository): bs.rec_whs_cd, bs.rec_whs_sub_cd, bs.rev_hsdnymd_srk, - bs.slip_mgt_no + bs.slip_mgt_num ASC\ """ def fetch_many(self, parameter: BioModel) -> list[BioSalesViewModel]: try: self._database.connect() + logger.debug('DB参照実行') where_clause = self.__build_condition(parameter) - # error_log(date("Y/m/d H:i:s") . " [INFO] DB Return=" . $result . "\r\n", 3, "$execLog"); - # error_log(date("Y/m/d H:i:s") . " [INFO] DB参照実行" . "\r\n", 3, "$execLog"); query = self.FETCH_SQL.format(where_clause=where_clause) - # error_log(date("Y/m/d H:i:s") . " [INFO] SQL: " . $query . "\r\n", 3, "$execLog"); + logger.debug(f'SQL: {query}') result = self._database.execute_select(query, parameter.dict()) + logger.debug(f'count= {len(result)}') models = [BioSalesViewModel(**r) for r in result] - # error_log(date("Y/m/d H:i:s") . " [INFO] count=" . $count . "\r\n", 3, "$execLog"); return models except Exception as e: - # TODO: ファイルへの書き出しはloggerでやる - print(f"[ERROR] DB Error : Exception={e.args}") + logger.exception(f"DB Error : Exception={e.args}") raise e finally: self._database.disconnect() @@ -58,18 +59,15 @@ class BioSalesViewRepository(BaseRepository): def fetch_as_data_frame(self, parameter: BioModel): try: self._database.connect() + logger.debug('DB参照実行') where_clause = self.__build_condition(parameter) - # error_log(date("Y/m/d H:i:s") . " [INFO] DB Return=" . $result . "\r\n", 3, "$execLog"); - # error_log(date("Y/m/d H:i:s") . " [INFO] DB参照実行" . "\r\n", 3, "$execLog"); query = self.FETCH_SQL.format(where_clause=where_clause) - # error_log(date("Y/m/d H:i:s") . " [INFO] SQL: " . $query . "\r\n", 3, "$execLog"); - # models = [BioSalesViewModel(**r) for r in result] - # error_log(date("Y/m/d H:i:s") . " [INFO] count=" . $count . "\r\n", 3, "$execLog"); + logger.debug(f'SQL: {query}') df = self._to_data_frame(query, parameter) + logger.debug(f'count= {len(df.index)}') return df except Exception as e: - # TODO: ファイルへの書き出しはloggerでやる - print(f"[ERROR] DB Error : Exception={e.args}") + logger.exception(f"DB Error : Exception={e.args}") raise e finally: self._database.disconnect() diff --git a/ecs/jskult-webapp/src/repositories/pharmacy_product_master_repository.py b/ecs/jskult-webapp/src/repositories/pharmacy_product_master_repository.py index 2720955f..4f10e090 100644 --- a/ecs/jskult-webapp/src/repositories/pharmacy_product_master_repository.py +++ b/ecs/jskult-webapp/src/repositories/pharmacy_product_master_repository.py @@ -6,21 +6,21 @@ class PharmacyProductMasterRepository(BaseRepository): FETCH_SQL = """\ SELECT - CONCAT(IFNULL(mkr_cd, ''), ' ', IFNULL(mkr_inf_1, '')) AS mkr_cd_nm + CONCAT(IFNULL(t1.mkr_cd, ''), ' ', IFNULL(t1.mkr_inf_1, '')) AS mkr_cd_name FROM src05.phm_prd_mst_v t1 INNER JOIN ( SELECT - prd_cd,MAX(sub_no) AS sno + prd_cd, MAX(sub_num) AS sno FROM src05.phm_prd_mst_v WHERE rec_sts_kbn <> '9' GROUP BY prd_cd ) fmv2 - ON t1.prd_cd = fmv2.prd_cd AND t1.sub_no = fmv2.sno + ON t1.prd_cd = fmv2.prd_cd AND t1.sub_num = fmv2.sno WHERE - mkr_cd IS NOT NULL + t1.mkr_cd IS NOT NULL ORDER BY mkr_cd """ diff --git a/ecs/jskult-webapp/src/repositories/wholesaler_master_repository.py b/ecs/jskult-webapp/src/repositories/wholesaler_master_repository.py index 246eea5e..5e58e1b5 100644 --- a/ecs/jskult-webapp/src/repositories/wholesaler_master_repository.py +++ b/ecs/jskult-webapp/src/repositories/wholesaler_master_repository.py @@ -8,18 +8,22 @@ class WholesalerMasterRepository(BaseRepository): SELECT DISTINCT b.rec_whs_cd, b.rec_whs_sub_cd, - v2.nm, - b.whs_nm + v2.name, + b.whs_name FROM src05.bio_sales b LEFT OUTER JOIN ( - SELECT sub_no, nm, v_whs_cd, rec_sts_kbn + SELECT + sub_num, + name, + v_whs_cd, + rec_sts_kbn FROM src05.whs_mst_v WHERE (SELECT STR_TO_DATE(syor_date, '%Y%m%d') FROM src05.hdke_tbl) BETWEEN start_date AND end_date ) v2 ON b.v_whs_cd = v2.v_whs_cd AND v2.rec_sts_kbn <> '9' - ORDER BY b.rec_whs_cd, b.rec_whs_sub_cd , b.whs_nm DESC + ORDER BY b.rec_whs_cd, b.rec_whs_sub_cd , b.whs_name DESC """ def fetch_all(self) -> list[WholesalerMasterModel]: diff --git a/ecs/jskult-webapp/src/services/logout_service.py b/ecs/jskult-webapp/src/services/logout_service.py new file mode 100644 index 00000000..8944ccde --- /dev/null +++ b/ecs/jskult-webapp/src/services/logout_service.py @@ -0,0 +1,65 @@ +# import base64 +# import hashlib +# import hmac + +# import requests + +# from src.aws.aws_api_client import AWSAPIClient +# from src.aws.cognito import CognitoClient +# from src.error.exceptions import NotAuthorizeException +# from src.model.db.user_master import UserMasterModel +# from src.model.internal.jwt_token import JWTToken +# from src.repositories.base_repository import BaseRepository +# from src.repositories.user_master_repository import UserMasterRepository +# from src.services.base_service import BaseService +# from src.system_var import environment + + +# class LogoutService(BaseService): +# REPOSITORIES = { +# 'user_repository': UserMasterRepository +# } + +# CLIENTS = { +# 'cognito_client': CognitoClient +# } + +# def __init__(self, repositories: dict[str, BaseRepository], clients: dict[str, AWSAPIClient]) -> None: +# super().__init__(repositories, clients) +# self.user_repository = repositories['user_repository'] +# self.cognito_client = clients['cognito_client'] + +# def logout(self) -> None: +# logout_endpoint = f'{environment.COGNITO_AUTH_DOMAIN}/{environment.LOGOUT_ENDPOINT}' +# request_params = { +# 'client_id': environment.COGNITO_CLIENT_ID, +# 'code': code, +# 'redirect_uri': environment.COGNITO_REDIRECT_URI +# } +# try: +# id_token, refresh_token = self.cognito_client.login_by_user_password_flow( +# username, +# password, +# self.__secret_hash(username) +# ) +# except Exception as e: +# if e.response['Error']['Code'] == 'NotAuthorizedException': +# raise NotAuthorizeException(e) +# else: +# raise e + +# return JWTToken(id_token, refresh_token) + +# def login_with_security_code(self, code: str) -> JWTToken: +# return JWTToken.request(code) + +# def logged_in_user(self, user_id): +# user_record: UserMasterModel = self.user_repository.fetch_one({'user_id': user_id}) +# return user_record + +# def __secret_hash(self, username: str): +# # see - https://aws.amazon.com/jp/premiumsupport/knowledge-center/cognito-unable-to-verify-secret-hash/ # noqa +# message = bytes(username + environment.COGNITO_CLIENT_ID, 'utf-8') +# key = bytes(environment.COGNITO_CLIENT_SECRET, 'utf-8') +# digest = hmac.new(key, message, digestmod=hashlib.sha256).digest() +# return base64.b64encode(digest).decode() diff --git a/ecs/jskult-webapp/src/system_var/constants.py b/ecs/jskult-webapp/src/system_var/constants.py index 1ebf4eac..9b022b3d 100644 --- a/ecs/jskult-webapp/src/system_var/constants.py +++ b/ecs/jskult-webapp/src/system_var/constants.py @@ -5,31 +5,31 @@ BIO_EXCEL_TEMPLATE_FILE_PATH = path.join(BIO_TEMPORARY_FILE_DIR_PATH, 'BioData_t BIO_EXTRACT_COLUMNS = [ 'slip_org_kbn', - 'slip_mgt_no', + 'slip_mgt_num', 'rec_ymd', 'rec_whs_cd', 'rec_whs_sub_cd', - 'whs_nm', + 'whs_name', 'rec_whs_org_cd', - 'rec_urag_no', + 'rec_urag_num', 'rev_hsdnymd_srk', 'rec_tran_kbn', - 'tran_kbn_nm', + 'tran_kbn_name', 'mkr_cd', 'rec_comm_cd', 'comm_nm', 'whs_rep_comm_nm', - 'nnsk_cd', - 'rec_nnskfcl_nm', + 'nonyu_fcl_cd', + 'rec_nonyu_fcl_name', 'whs_rep_nnskfcl_nm', - 'rec_nnsk_fcl_addr', + 'rec_nonyu_fcl_addr', 'whs_rep_nnsk_fcl_addr', 'rec_lot_num', 'amt_fugo', 'expr_dt', 'data_kbn', 'lot_no_err_flg', - 'bef_slip_mgt_no', + 'bef_slip_mgt_num', 'ins_usr', 'ins_dt', 'inst_cd', @@ -38,7 +38,7 @@ BIO_EXTRACT_COLUMNS = [ 'tel_no', 'v_whs_cd', 'v_whsorg_cd', - 'whs_org_nm', + 'whs_org_name', 'v_tran_cd', 'iko_flg' ] diff --git a/ecs/jskult-webapp/src/system_var/environment.py b/ecs/jskult-webapp/src/system_var/environment.py index 7d82d560..dea354bf 100644 --- a/ecs/jskult-webapp/src/system_var/environment.py +++ b/ecs/jskult-webapp/src/system_var/environment.py @@ -3,6 +3,7 @@ import os COGNITO_AUTH_DOMAIN = os.environ['COGNITO_AUTH_DOMAIN'] AUTHORIZE_ENDPOINT = os.environ['AUTHORIZE_ENDPOINT'] TOKEN_ENDPOINT = os.environ['TOKEN_ENDPOINT'] +LOGOUT_ENDPOINT = os.environ['LOGOUT_ENDPOINT'] COGNITO_IDENTITY_PROVIDER = os.environ['COGNITO_IDENTITY_PROVIDER'] COGNITO_REDIRECT_URI = os.environ['COGNITO_REDIRECT_URI'] COGNITO_USER_POOL_ID = os.environ['COGNITO_USER_POOL_ID'] @@ -20,3 +21,5 @@ DB_SCHEMA = os.environ['DB_SCHEMA'] BIO_SEARCH_RESULT_MAX_COUNT = int(os.environ['BIO_SEARCH_RESULT_MAX_COUNT']) SESSION_EXPIRE_MINUTE = int(os.environ['SESSION_EXPIRE_MINUTE']) + +LOG_LEVEL = os.environ.get('LOG_LEVEL', 'INFO') diff --git a/ecs/jskult-webapp/src/templates/bioSearchList.html b/ecs/jskult-webapp/src/templates/bioSearchList.html index cc208efd..2c813f12 100644 --- a/ecs/jskult-webapp/src/templates/bioSearchList.html +++ b/ecs/jskult-webapp/src/templates/bioSearchList.html @@ -37,7 +37,7 @@ ロット番号: - データ区分: @@ -88,9 +88,9 @@ @@ -99,13 +99,13 @@ 発伝年月日: - ~ - - {% with + {% with modal_id='modal_xlsx', modal_title='確認', message='生物由来卸販売データ一覧をExcel出力しますか?', @@ -373,7 +373,7 @@ {% include '_modal.html' %} {% endwith %} - {% with + {% with modal_id='modal_csv', modal_title='確認', message='生物由来卸販売データ一覧をCSV出力しますか?', @@ -397,7 +397,7 @@ {% include '_modal.html' %} {% endwith %} - {% with + {% with modal_id='ErrorModal_AWS', modal_title='エラー', message='AWS環境に異常が発生しました。管理者にお問い合わせください。', @@ -415,7 +415,7 @@ {% include '_modal.html' %} {% endwith %} - {% with + {% with modal_id='ErrorModal_DB', modal_title='エラー', message='DB接続に失敗しました。管理者にお問い合わせください。', @@ -434,7 +434,7 @@ {% endwith %} - {% with + {% with modal_id='ErrorModal_Unexpected', modal_title='エラー', message='サーバーエラーが発生しました。管理者にお問い合わせください。',