Adds notes field for patterns

dev
Javanaut 1 month ago
parent ed0cea9c26
commit 4dc02d52a2

@ -1,6 +1,6 @@
import click import click
from sqlalchemy import Column, Integer, String, ForeignKey from sqlalchemy import Column, Integer, String, Text, ForeignKey
from sqlalchemy.orm import relationship from sqlalchemy.orm import relationship
from .show import Base, Show from .show import Base, Show
@ -35,6 +35,8 @@ class Pattern(Base):
quality = Column(Integer, default=0) quality = Column(Integer, default=0)
notes = Column(Text, default='')
def getId(self): def getId(self):

@ -45,11 +45,12 @@ class PatternController():
if q.count(): if q.count():
pattern = q.first() pattern: Pattern = q.first()
pattern.show_id = int(patternObj['show_id']) pattern.show_id = int(patternObj['show_id'])
pattern.pattern = str(patternObj['pattern']) pattern.pattern = str(patternObj['pattern'])
pattern.quality = str(patternObj['quality']) pattern.quality = str(patternObj['quality'])
pattern.notes = str(patternObj['notes'])
s.commit() s.commit()
return True return True

@ -2,7 +2,7 @@ import click, re
from typing import List from typing import List
from textual.screen import Screen from textual.screen import Screen
from textual.widgets import Header, Footer, Static, Button, Input, DataTable from textual.widgets import Header, Footer, Static, Button, Input, DataTable, TextArea
from textual.containers import Grid from textual.containers import Grid
from ffx.model.pattern import Pattern from ffx.model.pattern import Pattern
@ -40,7 +40,7 @@ class PatternDetailsScreen(Screen):
Grid { Grid {
grid-size: 7 13; grid-size: 7 13;
grid-rows: 2 2 2 2 2 2 8 2 2 8 2 2 2 2; grid-rows: 2 2 2 2 2 2 6 2 2 8 2 2 8 2 2 2 2;
grid-columns: 25 25 25 25 25 25 25; grid-columns: 25 25 25 25 25 25 25;
height: 100%; height: 100%;
width: 100%; width: 100%;
@ -89,6 +89,12 @@ class PatternDetailsScreen(Screen):
column-span: 7; column-span: 7;
} }
.four_box {
min-height: 6;
}
.box { .box {
height: 100%; height: 100%;
border: solid green; border: solid green;
@ -258,6 +264,9 @@ class PatternDetailsScreen(Screen):
if self.__pattern and self.__pattern.quality: if self.__pattern and self.__pattern.quality:
self.query_one("#quality_input", Input).value = str(self.__pattern.quality) self.query_one("#quality_input", Input).value = str(self.__pattern.quality)
if self.__pattern and self.__pattern.notes:
self.query_one("#notes_textarea", Input).value = str(self.__pattern.notes)
self.updateTags() self.updateTags()
self.updateTracks() self.updateTracks()
@ -305,12 +314,29 @@ class PatternDetailsScreen(Screen):
# 3 # 3
yield Static(" ", classes="seven") yield Static(" ", classes="seven")
# 4 # 4
yield Static("Quality") yield Static("Quality")
yield Input(type="integer", id="quality_input") yield Input(type="integer", id="quality_input")
yield Static(' ', classes="five") yield Static(' ', classes="five")
# 4
# 5
yield Static(" ", classes="seven")
# 6
yield Static("Notes")
yield Static(" ", classes="six")
# 7
yield TextArea(id="notes_textarea", classes="four_box seven")
# 4 -> 8
yield Static(" ", classes="seven") yield Static(" ", classes="seven")
# 5 # 5
@ -381,6 +407,9 @@ class PatternDetailsScreen(Screen):
return int(self.query_one("#quality_input", Input).value) return int(self.query_one("#quality_input", Input).value)
except ValueError: except ValueError:
return 0 return 0
def getNotesFromInput(self):
return str(self.query_one("#notes_textarea", Input).value)
def getSelectedTrackDescriptor(self): def getSelectedTrackDescriptor(self):
@ -443,6 +472,7 @@ class PatternDetailsScreen(Screen):
patternDescriptor['show_id'] = self.__showDescriptor.getId() patternDescriptor['show_id'] = self.__showDescriptor.getId()
patternDescriptor['pattern'] = self.getPatternFromInput() patternDescriptor['pattern'] = self.getPatternFromInput()
patternDescriptor['quality'] = self.getQualityFromInput() patternDescriptor['quality'] = self.getQualityFromInput()
patternDescriptor['notes'] = self.getNotesFromInput()
if self.__pattern is not None: if self.__pattern is not None:

Loading…
Cancel
Save