fixing season combo box logic
This commit is contained in:
parent
8067343a74
commit
8be501dd46
25
frontend.py
25
frontend.py
@ -28,10 +28,20 @@ class AnimeDialog(QDialog):
|
|||||||
self.name_edit.setMaxLength(255) # Prevent overly long inputs
|
self.name_edit.setMaxLength(255) # Prevent overly long inputs
|
||||||
layout.addRow("Name", self.name_edit)
|
layout.addRow("Name", self.name_edit)
|
||||||
self.year_spin = QSpinBox()
|
self.year_spin = QSpinBox()
|
||||||
self.year_spin.setRange(1900, 2100)
|
self.year_spin.setRange(1960, 2073)
|
||||||
layout.addRow("Year", self.year_spin)
|
layout.addRow("Year", self.year_spin)
|
||||||
self.season_combo = QComboBox()
|
self.season_combo = QComboBox()
|
||||||
self.season_combo.addItems(['', 'winter', 'spring', 'summer', 'fall'])
|
self.season_combo.addItems(['Winter', 'Spring', 'Summer', 'Fall', 'Other'])
|
||||||
|
# Map display names to database values
|
||||||
|
self.season_map = {
|
||||||
|
'Winter': 'winter',
|
||||||
|
'Spring': 'spring',
|
||||||
|
'Summer': 'summer',
|
||||||
|
'Fall': 'fall',
|
||||||
|
'Other': ''
|
||||||
|
}
|
||||||
|
# Reverse map for setting current selection
|
||||||
|
self.reverse_season_map = {v: k for k, v in self.season_map.items()}
|
||||||
layout.addRow("Season", self.season_combo)
|
layout.addRow("Season", self.season_combo)
|
||||||
self.type_combo = QComboBox()
|
self.type_combo = QComboBox()
|
||||||
self.type_combo.addItems(['TV', 'Movie', 'OVA', 'Special', 'Short TV', 'Other'])
|
self.type_combo.addItems(['TV', 'Movie', 'OVA', 'Special', 'Short TV', 'Other'])
|
||||||
@ -62,23 +72,28 @@ class AnimeDialog(QDialog):
|
|||||||
if default_year is not None:
|
if default_year is not None:
|
||||||
self.year_spin.setValue(default_year)
|
self.year_spin.setValue(default_year)
|
||||||
if default_season is not None:
|
if default_season is not None:
|
||||||
self.season_combo.setCurrentText(default_season)
|
# Map database season value to display name for default
|
||||||
|
display_season = self.reverse_season_map.get(default_season, 'Other')
|
||||||
self.year_spin.valueChanged.connect(self.update_season)
|
self.year_spin.valueChanged.connect(self.update_season)
|
||||||
self.update_season(self.year_spin.value())
|
self.update_season(self.year_spin.value())
|
||||||
|
|
||||||
def update_season(self, year):
|
def update_season(self, year):
|
||||||
if year < 2010:
|
if year < 2010:
|
||||||
self.season_combo.setEnabled(False)
|
self.season_combo.setEnabled(False)
|
||||||
self.season_combo.setCurrentText('')
|
self.season_combo.setCurrentText('Other')
|
||||||
else:
|
else:
|
||||||
self.season_combo.setEnabled(True)
|
self.season_combo.setEnabled(True)
|
||||||
|
|
||||||
def get_data(self):
|
def get_data(self):
|
||||||
|
# Convert display season name back to database value
|
||||||
|
display_season = self.season_combo.currentText().strip()
|
||||||
|
db_season = self.season_map.get(display_season, '')
|
||||||
|
|
||||||
# Sanitize inputs by escaping special characters
|
# Sanitize inputs by escaping special characters
|
||||||
return {
|
return {
|
||||||
'name': html.escape(self.name_edit.text().strip()),
|
'name': html.escape(self.name_edit.text().strip()),
|
||||||
'year': self.year_spin.value(),
|
'year': self.year_spin.value(),
|
||||||
'season': html.escape(self.season_combo.currentText().strip()),
|
'season': html.escape(db_season), # Use mapped database value
|
||||||
'status': html.escape(self.status_combo.currentText().strip()),
|
'status': html.escape(self.status_combo.currentText().strip()),
|
||||||
'type': html.escape(self.type_combo.currentText().strip()),
|
'type': html.escape(self.type_combo.currentText().strip()),
|
||||||
'comment': html.escape(self.comment_edit.toPlainText().strip()),
|
'comment': html.escape(self.comment_edit.toPlainText().strip()),
|
||||||
|
Loading…
Reference in New Issue
Block a user