Commit graph

515 commits

Author SHA1 Message Date
8944755dc4 Rollback if an on_commit action fails. 2021-01-03 00:19:08 -08:00
b73fb69612 Add comment about foreign keys. 2021-01-01 17:02:03 -08:00
ea5f22bae1 Remove unused unicodedata.
Relevant function got moved to stringtools.
2021-01-01 17:02:03 -08:00
d55cc5c58a Use a dict instead of if/elif. 2021-01-01 17:02:02 -08:00
2c29c196a7 Return friendly and expanded orderby column separately.
Previously, the UI had to un-transform the expanded column back
into the friendly name, which was silly and cumbersome.
2021-01-01 17:02:02 -08:00
79327de0f0 Rearrange these continues into relevant condition. 2021-01-01 17:02:02 -08:00
b1000dd0f8 Move orderby direction check above column expansion. 2021-01-01 17:02:01 -08:00
8ecf594945 Move jsonify methods into the objects instead of separate file. 2021-01-01 17:02:01 -08:00
d3f6d6b26a Add exceptions to warning_bag instead of strings for some.
I was adding messages as strings because that's how they get shown on
the web interface. But it's better to return the real exception objects
and have the interface deal with it.
2021-01-01 17:02:01 -08:00
5d11b0cfeb Update extension column when filepath is updated. 2021-01-01 17:02:00 -08:00
6522bda09c Add basename in separate column so we can orderby it.
For a while I've wanted to be able to sort search results by the file's
basename. This is especially important for the cli. SQLite doesn't have
an easy way to split the filepath column by the slash, so the only
choice is to store basename as a separate column. I put it off for a
while but I think it's the right move. However we must not forget to
update it every time we update filepath, which is a bummer.
2021-01-01 17:02:00 -08:00
6a98631f2d Add sql_executescript. 2021-01-01 17:01:59 -08:00
8e964e2888 Add get_albums_within_directory. 2021-01-01 17:01:52 -08:00
f9e7049424 Change allowed_orderby_columns from list to set; alphabetize. 2020-12-29 16:06:43 -08:00
01f85d41b6 Use voussoirkit.stringtools for remove_characters. 2020-11-16 00:13:35 -08:00
4988f6dbdd Fix missing parameters for get_users_by_sql. 2020-11-15 22:20:36 -08:00
6fe3cecead Remove old import for logging. 2020-11-15 22:20:36 -08:00
469103e0ac Use voussoirkit.stringtools for comma_space_split. 2020-11-15 22:20:36 -08:00
98b6d93094 Use voussoirkit.stringtools for collapse_whitespace. 2020-11-15 22:20:36 -08:00
9ca40c6ae7 Use voussoirkit.gentools for chunk_generator. 2020-11-15 22:20:36 -08:00
7d454a03ac Incorporate __name__ into photodb's logger. 2020-11-15 22:20:36 -08:00
9e6f8041fb Use voussoirkit.stringtools for pascal_to_loudsnakes. 2020-11-15 22:20:36 -08:00
1a6abf00b9 Use voussoirkit hms instead of local function. 2020-11-15 17:44:10 -08:00
9e322c18d4 Fix pascal_to_loudsnakes to handle repeated caps as single term. 2020-11-09 16:20:03 -08:00
8e3bcbc1af Promote some logs from debug to info, and add punctuation. 2020-11-08 21:29:56 -08:00
d653317907 Let sql_execute log as LOUD. 2020-11-08 20:21:40 -08:00
de2f1caa42 Don't use log_level from config -- pass it in to constructor.
The problem with the log_level config was twofold. First, there is some
work to be done before the config is be loaded, and so we must hardcode
the log level for that. I was using debug. Secondly, I have realized
that log levels should be pushed as close to the front of the UI code
as possible, not the backend code.
2020-11-08 20:09:16 -08:00
c9fcb51247 When normalizing tag names, collapse whitespace to 1 space. 2020-10-25 20:21:52 -07:00
40d369e2bb Fix handling of root drive path as within_directory. 2020-10-25 20:18:56 -07:00
90e7f6b6e1 Rewrite tag_export.easybake as a generator. 2020-10-17 17:56:21 -07:00
c278f3e0af Let Tag objects be sortable using their name. 2020-10-17 17:55:36 -07:00
6fb6b1eeb0 Add Bookmark.display_name, just like Album. 2020-10-13 10:37:12 -07:00
b2290d030a Allow orderby bitrate. 2020-10-12 22:28:09 -07:00
735fbf9abd Let the purge methods yield their deleted items. 2020-09-30 13:41:42 -07:00
3a8aadf6aa Remove __main__ from photodb.py. 2020-09-28 20:15:28 -07:00
6eb4d887ba Replace create_or_get_photos with singular. 2020-09-28 20:14:10 -07:00
d531c66bf0 Delete photo's thumbnail when deleting the file.
A minor oversight, I think you'll agree.
2020-09-28 14:22:09 -07:00
949e6f68fe Remove support for two Photos with same path.
I have yet to find a practical need for this, and all it does is cause
headaches about the safety of moving / renaming the file.
2020-09-28 14:18:10 -07:00
585882028d Add get_things_by_sql for quick, bespoke queries. 2020-09-28 14:07:28 -07:00
98f706f486 Let Photo.basename be a @property. 2020-09-28 14:06:32 -07:00
3b72b07262 Replace yield from generator with return generator. 2020-09-28 11:26:16 -07:00
63bc2dfed5 Add yield_photos, count albums in search result limit.
This experiment of bringing Photos and Albums closer to parity in
search is going well so far. I have found some situations where it
is nice to only get albums back from search results.
2020-09-27 23:38:49 -07:00
c7eda36133 Add decollide_names, prefer simplified names in album exports. 2020-09-27 23:36:15 -07:00
28aa47d40d Add __str__ to Album and Photo. 2020-09-27 23:35:12 -07:00
ba1fba0c06 Add full_name to Albums. 2020-09-27 23:35:12 -07:00
8777998829 Add plural method remove_children. 2020-09-27 22:24:33 -07:00
0eb8fd3f1b Fix incorrect short-circuit order of add_chidren bail. 2020-09-27 19:49:27 -07:00
06340d03da Dedent these loops via comprehensions of questionable clarity. 2020-09-27 13:50:35 -07:00
fa512eff28 Add argument once_each, set to False if you want every permutation. 2020-09-27 13:28:03 -07:00
97cc023866 Add Groupable methods has_ancestor, _descendant, _parent. 2020-09-27 13:01:19 -07:00