From 292960e33b92bc97c93874a28bec5bfae8e41809 Mon Sep 17 00:00:00 2001 From: "shimoda.m@nds-tyo.co.jp" Date: Thu, 5 Oct 2023 10:10:49 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20API=E5=8C=96=E3=81=AB=E4=BC=B4=E3=81=84?= =?UTF-8?q?=E3=80=81=E4=B8=8D=E8=A6=81=E3=81=AB=E3=81=AA=E3=81=A3=E3=81=9F?= =?UTF-8?q?=E3=83=93=E3=83=A5=E3=83=BC=E3=83=A2=E3=83=87=E3=83=AB=E3=81=AE?= =?UTF-8?q?=E3=83=A1=E3=82=BD=E3=83=83=E3=83=89=E3=81=A8=E3=83=86=E3=83=B3?= =?UTF-8?q?=E3=83=97=E3=83=AC=E3=83=BC=E3=83=88=E3=81=B8=E3=81=AE=E5=9F=8B?= =?UTF-8?q?=E3=82=81=E8=BE=BC=E3=81=BF=E3=82=92=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/model/view/bio_view_model.py | 124 +----------------- .../src/templates/bioSearchList.html | 80 ++++------- 2 files changed, 31 insertions(+), 173 deletions(-) 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 4f257508..e0aab9ad 100644 --- a/ecs/jskult-webapp/src/model/view/bio_view_model.py +++ b/ecs/jskult-webapp/src/model/view/bio_view_model.py @@ -1,14 +1,9 @@ -import json from collections import OrderedDict -from datetime import datetime -from typing import Optional from pydantic import BaseModel from src.model.db.pharmacy_product_master import PharmacyProductMasterModel from src.model.db.wholesaler_master import WholesalerMasterModel -from src.model.request.bio import BioModel -from src.model.view.bio_disp_model import BioDisplayModel from src.system_var import environment @@ -17,9 +12,8 @@ class BioViewModel(BaseModel): user_id: str whs_models: list[WholesalerMasterModel] phm_models: list[PharmacyProductMasterModel] - bio_data: Optional[list[BioDisplayModel]] = None - form_data: BioModel = None - excel_max_lines: int = str(environment.BIO_EXCEL_RESULT_MAX_COUNT) + search_data_max_length: int = environment.BIO_SEARCH_RESULT_MAX_COUNT + excel_max_lines: str = str(environment.BIO_EXCEL_RESULT_MAX_COUNT) def display_wholesaler_names(self): display_names = [ @@ -49,117 +43,3 @@ class BioViewModel(BaseModel): '2': '除外' } ) - - def bio_data_json_str(self): - """生物由来ロット分解データの検索結果を指定された件数ごとに分割しながら返す""" - def date_handler(obj): - """json.dumpsの日付項目のフォーマットハンドラ""" - return obj.isoformat().replace('T', ' ') if hasattr(obj, 'isoformat') else obj - - search_data_list = [model.model_dump() for model in self.bio_data] - search_data_len = len(search_data_list) - # 呼び出し一回あたりの分割数 - part_size = 500 - for i in range(0, search_data_len, part_size): - json_str = json.dumps(search_data_list[i:i + part_size], ensure_ascii=False, default=date_handler) - # JavaScriptに埋め込むため、クォートをエスケープ - json_str = json_str.replace("'", "\\'") - json_str = json_str.replace('\\"', '\\\\"') - yield json_str - - def make_whs_name(self): - if not self.is_form_submitted(): - return '' - if self.form_data.rec_whs_cd is None: - return '' - - form_wholesaler_full_name = \ - f'{self.form_data.rec_whs_cd}-{self.form_data.rec_whs_sub_cd}:{self.form_data.whs_name}' - - return form_wholesaler_full_name - - def is_selected_whs_name(self, selected_wholesaler): - if not self.is_form_submitted(): - return '' - - form_wholesaler_full_name = \ - f'{self.form_data.rec_whs_cd}-{self.form_data.rec_whs_sub_cd}:{self.form_data.whs_name}' - - return self._selected_value(form_wholesaler_full_name, selected_wholesaler) - - def is_selected_org_kbn(self, selected_org_kbn): - if not self.is_form_submitted(): - return '' - return self._selected_value(self.form_data.slip_org_kbn, selected_org_kbn) - - def is_input_rec_ymd_from(self): - if not self.is_form_submitted(): - return '' - - return self._format_date_string(self.form_data.rec_ymd_from) - - def is_input_rec_ymd_to(self): - if not self.is_form_submitted(): - return '' - - return self._format_date_string(self.form_data.rec_ymd_to) - - def is_input_lot_num(self): - if not self.is_form_submitted(): - return '' - - return self.form_data.rec_lot_num or '' - - def is_selected_data_kbn(self, selected_data_kbn): - if not self.is_form_submitted(): - return '' - - return self._selected_value(self.form_data.data_kbn, selected_data_kbn) - - def is_selected_maker_cd(self, selected_maker_cd): - if not self.is_form_submitted(): - return '' - - return self._selected_value(self.form_data.mkr_cd, selected_maker_cd) - - def is_input_rev_hsdnymd_srk_from(self): - if not self.is_form_submitted(): - return '' - - return self._format_date_string(self.form_data.rev_hsdnymd_srk_from) - - def is_input_rev_hsdnymd_srk_to(self): - if not self.is_form_submitted(): - return '' - - return self._format_date_string(self.form_data.rev_hsdnymd_srk_to) - - def is_checked_iko_flg(self): - if not self.is_form_submitted(): - return '' - - return 'checked' if self.form_data.iko_flg else '' - - def disabled_button(self): - return 'disabled' if self.is_data_empty() or self.is_data_overflow_max_length() else '' - - def is_form_submitted(self): - return self.form_data is not None - - def is_data_empty(self): - return self.bio_data is None or len(self.bio_data) == 0 - - def is_data_overflow_max_length(self): - return self.bio_data is None or len(self.bio_data) > environment.BIO_SEARCH_RESULT_MAX_COUNT - - def data_overflow_max_length(self): - return environment.BIO_SEARCH_RESULT_MAX_COUNT - - def _format_date_string(self, date_string): - if date_string is None: - return '' - date = datetime.strptime(date_string, '%Y%m%d') - return date.strftime('%Y/%m/%d') - - def _selected_value(self, form_value: str, current_value: str): - return 'selected' if form_value == current_value else '' diff --git a/ecs/jskult-webapp/src/templates/bioSearchList.html b/ecs/jskult-webapp/src/templates/bioSearchList.html index dd0afb36..9acfdbba 100644 --- a/ecs/jskult-webapp/src/templates/bioSearchList.html +++ b/ecs/jskult-webapp/src/templates/bioSearchList.html @@ -37,9 +37,7 @@ {% for org_kbn_code, org_kbn_value in bio.display_org_kbn().items() %} - + {% endfor %} 処理日: @@ -70,14 +70,16 @@ ロット番号: データ区分: @@ -86,10 +88,9 @@ @@ -98,22 +99,21 @@ 発伝年月日: - + - @@ -175,35 +175,26 @@
- {% if bio.is_form_submitted() and bio.is_data_overflow_max_length() %} - 検索結果が最大件数を超えました。検索条件を見直しして下さい。 - - {% endif %} - {% if bio.is_form_submitted() and bio.is_data_empty() %} -
- 対象のデータが存在しません -
- {% endif %}
- - - - - - - - - - + + + + + + + + + +