Adds notes field for patterns

dev
Javanaut 1 month ago
parent ed0cea9c26
commit 4dc02d52a2

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

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

@ -2,7 +2,7 @@ import click, re
from typing import List
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 ffx.model.pattern import Pattern
@ -40,7 +40,7 @@ class PatternDetailsScreen(Screen):
Grid {
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;
height: 100%;
width: 100%;
@ -89,6 +89,12 @@ class PatternDetailsScreen(Screen):
column-span: 7;
}
.four_box {
min-height: 6;
}
.box {
height: 100%;
border: solid green;
@ -258,6 +264,9 @@ class PatternDetailsScreen(Screen):
if self.__pattern and 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.updateTracks()
@ -305,12 +314,29 @@ class PatternDetailsScreen(Screen):
# 3
yield Static(" ", classes="seven")
# 4
yield Static("Quality")
yield Input(type="integer", id="quality_input")
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")
# 5
@ -382,6 +408,9 @@ class PatternDetailsScreen(Screen):
except ValueError:
return 0
def getNotesFromInput(self):
return str(self.query_one("#notes_textarea", Input).value)
def getSelectedTrackDescriptor(self):
@ -443,6 +472,7 @@ class PatternDetailsScreen(Screen):
patternDescriptor['show_id'] = self.__showDescriptor.getId()
patternDescriptor['pattern'] = self.getPatternFromInput()
patternDescriptor['quality'] = self.getQualityFromInput()
patternDescriptor['notes'] = self.getNotesFromInput()
if self.__pattern is not None:

Loading…
Cancel
Save