From e4674d69e559dd3798d6ee16368d0fd5b44d0264 Mon Sep 17 00:00:00 2001 From: "shimoda.m@nds-tyo.co.jp" Date: Fri, 28 Jul 2023 09:17:32 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=94=9F=E7=89=A9=E7=94=B1=E6=9D=A5?= =?UTF-8?q?=E7=85=A7=E4=BC=9A=E7=94=BB=E9=9D=A2=E3=81=8B=E3=82=89=E3=81=AE?= =?UTF-8?q?=E3=83=95=E3=82=A3=E3=83=BC=E3=83=89=E3=83=90=E3=83=83=E3=82=AF?= =?UTF-8?q?=E3=80=82=E3=82=B7=E3=83=B3=E3=82=B0=E3=83=AB=E3=82=AF=E3=82=A9?= =?UTF-8?q?=E3=83=BC=E3=83=88=E3=80=81=E3=83=80=E3=83=96=E3=83=AB=E3=82=AF?= =?UTF-8?q?=E3=82=A9=E3=83=BC=E3=83=88=E3=81=AE=E3=82=A8=E3=82=B9=E3=82=B1?= =?UTF-8?q?=E3=83=BC=E3=83=97=E5=87=A6=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../view/ultmarc_doctor_search_view_model.py | 14 ++++++- .../view/ultmarc_inst_search_view_model.py | 14 ++++++- .../src/templates/docSearch.html | 42 ++++++++++++++----- .../src/templates/instSearch.html | 42 +++++++++++++------ 4 files changed, 86 insertions(+), 26 deletions(-) diff --git a/ecs/jskult-webapp/src/model/view/ultmarc_doctor_search_view_model.py b/ecs/jskult-webapp/src/model/view/ultmarc_doctor_search_view_model.py index 1bfb0289..a623381e 100644 --- a/ecs/jskult-webapp/src/model/view/ultmarc_doctor_search_view_model.py +++ b/ecs/jskult-webapp/src/model/view/ultmarc_doctor_search_view_model.py @@ -17,9 +17,21 @@ class UltmarcDoctorSearchViewModel(BaseModel): form_data: Optional[UltmarcDoctorSearchModel] def ultmarc_data_json_str(self): + """アルトマーク医師データの検索結果を指定された件数ごとに分割しながら返す""" def date_handler(obj): + """json.dumpsの日付項目のフォーマットハンドラ""" return obj.isoformat() if hasattr(obj, 'isoformat') else obj - return json.dumps([model.dict() for model in self.doctor_data], ensure_ascii=False, default=date_handler) + + search_data_list = [model.dict() for model in self.doctor_data] + search_data_len = len(search_data_list) + # 呼び出し一回あたりの分割数 + part_size = 50 + 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 # ページネーションのページ番号 # 検索時は最初のページを表示する diff --git a/ecs/jskult-webapp/src/model/view/ultmarc_inst_search_view_model.py b/ecs/jskult-webapp/src/model/view/ultmarc_inst_search_view_model.py index f7dec105..b41c77cd 100644 --- a/ecs/jskult-webapp/src/model/view/ultmarc_inst_search_view_model.py +++ b/ecs/jskult-webapp/src/model/view/ultmarc_inst_search_view_model.py @@ -19,9 +19,21 @@ class UltmarcInstSearchViewModel(BaseModel): form_data: Optional[UltmarcInstSearchModel] def ultmarc_data_json_str(self): + """アルトマーク施設データの検索結果を指定された件数ごとに分割しながら返す""" def date_handler(obj): + """json.dumpsの日付項目のフォーマットハンドラ""" return obj.isoformat() if hasattr(obj, 'isoformat') else obj - return json.dumps([model.dict() for model in self.inst_data], ensure_ascii=False, default=date_handler) + + search_data_list = [model.dict() for model in self.inst_data] + search_data_len = len(search_data_list) + # 呼び出し一回あたりの分割数 + part_size = 50 + 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 # ページネーションのページ番号 # 検索時は最初のページを表示する diff --git a/ecs/jskult-webapp/src/templates/docSearch.html b/ecs/jskult-webapp/src/templates/docSearch.html index 7f6cc551..f6702fea 100644 --- a/ecs/jskult-webapp/src/templates/docSearch.html +++ b/ecs/jskult-webapp/src/templates/docSearch.html @@ -164,14 +164,8 @@