click-textual
Javanaut 12 months ago
parent 5e0fdd6476
commit a263c735aa

@ -392,8 +392,8 @@ class MediaDetailsScreen(Screen):
# 7 # 7
yield Static(" ") yield Static(" ")
yield Button("Select Default", id="select_default_button") yield Button("Set Default", id="select_default_button")
yield Button("Select Forced", id="select_forced_button") yield Button("Set Forced", id="select_forced_button")
yield Static(" ") yield Static(" ")
# 8 # 8
yield Static("Streams") yield Static("Streams")
@ -403,8 +403,15 @@ class MediaDetailsScreen(Screen):
yield Footer() yield Footer()
def getPatternFromInput(self): def getPatternDescriptorFromInput(self):
return str(self.query_one("#pattern_input", Input).value) """Returns show id and pattern from corresponding inputs"""
patternDescriptor = {}
try:
patternDescriptor['show_id'] = self.getSelectedShowDescriptor().getId()
patternDescriptor['pattern'] = str(self.query_one("#pattern_input", Input).value)
except:
pass
return patternDescriptor
def on_button_pressed(self, event: Button.Pressed) -> None: def on_button_pressed(self, event: Button.Pressed) -> None:
@ -492,14 +499,15 @@ class MediaDetailsScreen(Screen):
if showRowIndex is not None: if showRowIndex is not None:
self.showsTable.move_cursor(row=showRowIndex) self.showsTable.move_cursor(row=showRowIndex)
patternDescriptor = {} patternDescriptor = self.getPatternDescriptorFromInput()
patternDescriptor['show_id'] = showDescriptor.getId()
patternDescriptor['pattern'] = self.getPatternFromInput() if patternDescriptor:
self.__pc.addPattern(patternDescriptor) patternId = self.__pc.addPattern(patternDescriptor)
self.highlightPattern(False) self.highlightPattern(False)
self.action_update_pattern() for trackDescriptor in self.__currentMediaDescriptor.getAllTrackDescriptors():
self.__tc.addTrack(trackDescriptor, patternId = patternId)
def action_new_pattern(self): def action_new_pattern(self):
@ -519,15 +527,12 @@ class MediaDetailsScreen(Screen):
def action_update_pattern(self): def action_update_pattern(self):
"""When updating the database the actions must reverse the difference (eq to diff db->file)""" """When updating the database the actions must reverse the difference (eq to diff db->file)"""
if self.__currentPattern is not None:
inputPattern = self.getPatternFromInput()
if self.__currentPattern.getPattern() != inputPattern:
patternDescriptor = {}
patternDescriptor['show_id'] = self.getSelectedShowDescriptor().getId()
patternDescriptor['pattern'] = inputPattern
self.__pc.updatePattern(self.__currentPattern.getId(), patternDescriptor)
if self.__currentPattern is not None:
patternDescriptor = self.getPatternDescriptorFromInput()
if (patternDescriptor
and self.__currentPattern.getPattern() != patternDescriptor['pattern']):
return self.__pc.updatePattern(self.__currentPattern.getId(), patternDescriptor)
self.loadProperties() self.loadProperties()
@ -614,7 +619,7 @@ class MediaDetailsScreen(Screen):
def action_edit_pattern(self): def action_edit_pattern(self):
patternDescriptor = {} patternDescriptor = {}
patternDescriptor['show_id'] = self.getSelectedShow()['id'] patternDescriptor['show_id'] = self.getSelectedShowDescriptor().getId()
patternDescriptor['pattern'] = self.getPatternFromInput() patternDescriptor['pattern'] = self.getPatternFromInput()
if patternDescriptor['pattern']: if patternDescriptor['pattern']:
@ -624,7 +629,7 @@ class MediaDetailsScreen(Screen):
if selectedPatternId is None: if selectedPatternId is None:
raise click.ClickException(f"MediaDetailsScreen.action_edit_pattern(): Pattern to edit has no id") raise click.ClickException(f"MediaDetailsScreen.action_edit_pattern(): Pattern to edit has no id")
self.app.push_screen(PatternDetailsScreen(patternId = selectedPatternId, showId = self.getSelectedShow()['id']), self.handle_edit_pattern) # <- self.app.push_screen(PatternDetailsScreen(patternId = selectedPatternId, showId = self.getSelectedShowDescriptor().getId()), self.handle_edit_pattern) # <-
def handle_edit_pattern(self, screenResult): def handle_edit_pattern(self, screenResult):

@ -16,14 +16,14 @@ class PatternController():
try: try:
s = self.Session() s = self.Session()
q = s.query(Pattern).filter(Pattern.show_id == int(patternDescriptor['show_id']), Pattern.pattern == str(patternDescriptor['pattern'])) q = s.query(Pattern).filter(Pattern.show_id == int(patternDescriptor['show_id']))
if not q.count(): if not q.count():
pattern = Pattern(show_id = int(patternDescriptor['show_id']), pattern = Pattern(show_id = int(patternDescriptor['show_id']),
pattern = str(patternDescriptor['pattern'])) pattern = str(patternDescriptor['pattern']))
s.add(pattern) s.add(pattern)
s.commit() s.commit()
return int(pattern.getId()) return pattern.getId()
else: else:
return None return None

Loading…
Cancel
Save