Skip to content

Commit 5a3fd68

Browse files
committed
Implement tags, some fields, fix accidentally broken resource loading.
- Tag fields working. Text line fields working. - Add/remove tag to field, on all selected. - Edit text fields on all selected. - Mixed data display a bit broken. - Create/edit tags. - Bug: color choice on edit set to default, not previously chosen. - Change search result format to be dataclasses, eliminates a lot of fuzzy logic. - Search for tags by clicking tag. - Update checkbox on thumbs properly, with less database calls. - Remove save option for now. Database saves on interaction. - Add requirements to requirements.txt/-dev
1 parent d369b2d commit 5a3fd68

32 files changed

+1616
-2150
lines changed

pyproject.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
[tool.ruff]
22
exclude = ["main_window.py", "home_ui.py", "resources.py", "resources_rc.py"]
33

4+
# E731 - variable lambda assignment
5+
ignore = ["E731"]
6+
47
[tool.mypy]
58
strict_optional = false
69
disable_error_code = ["union-attr", "annotation-unchecked", "import-untyped"]

requirements-dev.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
ruff==0.4.2
1+
mypy==1.10.0
22
pre-commit==3.7.0
33
pytest==8.2.0
44
Pyinstaller==6.6.0
5-
mypy==1.10.0
5+
ruff==0.4.2
6+
types-pillow==10.2.0.20240511

requirements.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
humanfriendly==10.0
22
opencv_python>=4.8.0.74,<=4.9.0.80
33
Pillow==10.3.0
4+
pillow-heif==0.16.0
45
PySide6>=6.5.1.1,<=6.6.3.1
56
PySide6_Addons>=6.5.1.1,<=6.6.3.1
67
PySide6_Essentials>=6.5.1.1,<=6.6.3.1
8+
sqlalchemy==2.0.30
79
typing_extensions>=3.10.0.0,<=4.11.0
810
ujson>=5.8.0,<=5.9.0
9-
rawpy==0.21.0
10-
pillow-heif==0.16.0
11+
rawpy==0.21.0

tagstudio/make_db.py

Lines changed: 0 additions & 83 deletions
This file was deleted.

tagstudio/src/alt_core/constants.py

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
from dataclasses import dataclass
2+
3+
from src.database.table_declarations.field import (
4+
DatetimeField,
5+
DateTimeTypes,
6+
Field,
7+
FieldType,
8+
TagBoxField,
9+
TagBoxTypes,
10+
TextField,
11+
TextFieldTypes,
12+
)
13+
14+
15+
@dataclass
16+
class DefaultField:
17+
name: str
18+
class_: Field
19+
type_: FieldType
20+
21+
22+
TODO = [
23+
{"id": 9, "name": "Collation", "type": "collation"},
24+
{"id": 17, "name": "Book", "type": "collation"},
25+
{"id": 18, "name": "Comic", "type": "collation"},
26+
{"id": 19, "name": "Series", "type": "collation"},
27+
{"id": 20, "name": "Manga", "type": "collation"},
28+
{"id": 24, "name": "Volume", "type": "collation"},
29+
{"id": 25, "name": "Anthology", "type": "collation"},
30+
{"id": 26, "name": "Magazine", "type": "collation"},
31+
{"id": 15, "name": "Archived", "type": "checkbox"},
32+
{"id": 16, "name": "Favorite", "type": "checkbox"},
33+
]
34+
35+
36+
DEFAULT_FIELDS: list[DefaultField] = [
37+
DefaultField(name="Title", class_=TextField, type_=TextFieldTypes.text_line),
38+
DefaultField(name="Author", class_=TextField, type_=TextFieldTypes.text_line),
39+
DefaultField(name="Artist", class_=TextField, type_=TextFieldTypes.text_line),
40+
DefaultField(name="Guest Artist", class_=TextField, type_=TextFieldTypes.text_line),
41+
DefaultField(name="Composer", class_=TextField, type_=TextFieldTypes.text_line),
42+
DefaultField(name="URL", class_=TextField, type_=TextFieldTypes.text_line),
43+
DefaultField(name="Source", class_=TextField, type_=TextFieldTypes.text_line),
44+
DefaultField(name="Publisher", class_=TextField, type_=TextFieldTypes.text_line),
45+
DefaultField(name="Description", class_=TextField, type_=TextFieldTypes.text_box),
46+
DefaultField(name="Notes", class_=TextField, type_=TextFieldTypes.text_box),
47+
DefaultField(name="Comments", class_=TextField, type_=TextFieldTypes.text_box),
48+
DefaultField(name="Tags", class_=TagBoxField, type_=TagBoxTypes.tag_box),
49+
DefaultField(name="Content Tags", class_=TagBoxField, type_=TagBoxTypes.tag_box),
50+
DefaultField(name="Meta Tags", class_=TagBoxField, type_=TagBoxTypes.tag_box),
51+
DefaultField(name="Date", class_=DatetimeField, type_=DateTimeTypes.datetime),
52+
DefaultField(
53+
name="Date Created", class_=DatetimeField, type_=DateTimeTypes.datetime
54+
),
55+
DefaultField(
56+
name="Date Modified", class_=DatetimeField, type_=DateTimeTypes.datetime
57+
),
58+
DefaultField(name="Date Taken", class_=DatetimeField, type_=DateTimeTypes.datetime),
59+
DefaultField(
60+
name="Date Published", class_=DatetimeField, type_=DateTimeTypes.datetime
61+
),
62+
DefaultField(
63+
name="Date Uploaded", class_=DatetimeField, type_=DateTimeTypes.datetime
64+
),
65+
DefaultField(
66+
name="Date Released", class_=DatetimeField, type_=DateTimeTypes.datetime
67+
),
68+
]

0 commit comments

Comments
 (0)