Adds notes field for patterns

This commit is contained in:
Javanaut
2025-11-07 15:14:55 +01:00
parent ed0cea9c26
commit 4dc02d52a2
3 changed files with 38 additions and 5 deletions

View File

@@ -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):

View File

@@ -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

View File

@@ -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: