From e457568ef630f388563cb6c3f4ab59fc86567455 Mon Sep 17 00:00:00 2001 From: frankknoll Date: Tue, 10 Oct 2023 09:12:36 +0200 Subject: [PATCH] refactoring --- src/BatchcodeOptionsSetter.py | 18 ++---------------- src/SymptomsCausedByVaccines/OptionsSetter.py | 12 ++++++------ .../OptionsSetterTest.py | 1 + src/intensivstationen/KreisOptionsSetter.py | 17 ++--------------- 4 files changed, 11 insertions(+), 37 deletions(-) diff --git a/src/BatchcodeOptionsSetter.py b/src/BatchcodeOptionsSetter.py index cd2554a477e..2abad23a360 100644 --- a/src/BatchcodeOptionsSetter.py +++ b/src/BatchcodeOptionsSetter.py @@ -1,21 +1,7 @@ -from bs4 import BeautifulSoup +from SymptomsCausedByVaccines.OptionsSetter import OptionsSetter class BatchcodeOptionsSetter: def setBatchcodeOptions(self, html, options): - soup = self._setBatchcodeOptions(self._parse(html), self._parseOptions(options)) - return str(soup) - - def _setBatchcodeOptions(self, soup, options): - batchcodeSelect = soup.find(id = "batchCodeSelect") - batchcodeSelect.clear() - for option in options: - batchcodeSelect.append(option) - return soup - - def _parseOptions(self, options): - return [self._parse(option).option for option in options] - - def _parse(self, html): - return BeautifulSoup(html, 'lxml') + return OptionsSetter().setOptions(html, 'batchCodeSelect', options) diff --git a/src/SymptomsCausedByVaccines/OptionsSetter.py b/src/SymptomsCausedByVaccines/OptionsSetter.py index 68f170cc30d..221afc42510 100644 --- a/src/SymptomsCausedByVaccines/OptionsSetter.py +++ b/src/SymptomsCausedByVaccines/OptionsSetter.py @@ -3,15 +3,15 @@ from bs4 import BeautifulSoup class OptionsSetter: - def setOptions(self, html, options): - soup = self._setBatchcodeOptions(self._parse(html), self._parseOptions(options)) + def setOptions(self, html, selectElementId, options): + soup = self._setOptions(self._parse(html), selectElementId, self._parseOptions(options)) return str(soup) - def _setBatchcodeOptions(self, soup, options): - batchcodeSelect = soup.find(id = "vaccineSelect") - batchcodeSelect.clear() + def _setOptions(self, soup, selectElementId, options): + selectElement = soup.find(id = selectElementId) + selectElement.clear() for option in options: - batchcodeSelect.append(option) + selectElement.append(option) return soup def _parseOptions(self, options): diff --git a/src/SymptomsCausedByVaccines/OptionsSetterTest.py b/src/SymptomsCausedByVaccines/OptionsSetterTest.py index 200c19f91a5..e48b2c3a209 100644 --- a/src/SymptomsCausedByVaccines/OptionsSetterTest.py +++ b/src/SymptomsCausedByVaccines/OptionsSetterTest.py @@ -21,6 +21,7 @@ class OptionsSetterTest(unittest.TestCase): ''', + selectElementId = 'vaccineSelect', options=[ '', '']) diff --git a/src/intensivstationen/KreisOptionsSetter.py b/src/intensivstationen/KreisOptionsSetter.py index 2d57d07f4df..94a62343d6d 100644 --- a/src/intensivstationen/KreisOptionsSetter.py +++ b/src/intensivstationen/KreisOptionsSetter.py @@ -1,21 +1,8 @@ from bs4 import BeautifulSoup +from SymptomsCausedByVaccines.OptionsSetter import OptionsSetter class KreisOptionsSetter: def setKreisOptions(self, html, options): - soup = self._setKreisOptions(self._parse(html), self._parseOptions(options)) - return str(soup) - - def _setKreisOptions(self, soup, options): - kreisSelect = soup.find(id = "kreisSelect") - kreisSelect.clear() - for option in options: - kreisSelect.append(option) - return soup - - def _parseOptions(self, options): - return [self._parse(option).option for option in options] - - def _parse(self, html): - return BeautifulSoup(html, 'lxml') + return OptionsSetter().setOptions(html, 'kreisSelect', options)