Commit Graph

107 Commits (75effafaf5589d7d547d8f71ae248c2eb42ecd32)

Author SHA1 Message Date
voussoir 75effafaf5 Rename Groupable.parent -> get_parent.
After making the "if x.parent is None" mistake too many times,
forgetting that it was not a @property, I've decided that the
verby name is better.
2018-02-16 22:59:34 -08:00
voussoir bf0ac1ebac Move etiquette_repl into a folder for consistency.
The items in the frontends folder should essentially be
black boxes with a launch file. Now the repl one looks the same
as the flask.
2018-02-16 22:31:10 -08:00
voussoir 3c4f69f647 Specify name= on calls to PDB.get_tag.
Sometimes it's easy to forget whether its the name or ID,
and I like the consistency of specifying.
2018-02-16 22:25:56 -08:00
voussoir 1c1e7f158f Minor fixes & pylint appeasements. 2018-02-16 21:28:36 -08:00
voussoir 6f4530c88c Let SessionManager.get require Request object; Check IP addr.
So far there is no use case in which get needs to be called with
something other than a Request, and I don't think there will be.
So let's make that part of the design and we can also take the
opportunity to check IP.
2018-02-03 02:10:07 -08:00
voussoir c6a396c658 Move ef/endpoints/common.py to ef/common.py
Decided it doesn't belong with the endpoints files.
2018-02-03 01:43:41 -08:00
voussoir b39f2e3f7b Create basic_endpoints file. Don't put them in __init__. 2018-02-03 01:34:07 -08:00
voussoir 20462f1085 Oops, add back missing CSS on mmf deleter. 2018-01-30 19:45:59 -08:00
voussoir 75953c2999 Add docstrings to the photoclipboard functions. 2018-01-19 22:24:07 -08:00
voussoir cf59f96813 Perform serverside expiration of sessions on get attempt.
Also remove unnecessary conversion to int.
2018-01-19 21:59:50 -08:00
voussoir cdd8f9e248 Only reload the page if the clip operation was successful. 2018-01-19 21:44:21 -08:00
voussoir b00d93901a Apply werkzeug ProxyFix so that request.remote_addr is correct. 2018-01-17 20:53:25 -08:00
voussoir 7352d1e141 If the user has a token we don't recognize, give them a new one. 2018-01-15 20:04:47 -08:00
voussoir 55e1281774 Improve technique for finding cookie set by function.
Instead of iterating through all the outgoing headers.
2018-01-15 18:56:41 -08:00
voussoir be0fca729f Create sessions for anons as well, instead of just logged in.
It makes sense that anon sessions are still sessions. So @give_token
will ensure that every request has a session. Logged in conditionals
move from 'if session' to 'if session.user'.
2018-01-15 18:41:21 -08:00
voussoir 8a1f2c65f9 Tighten the types for _normalize_token; include werkzeug wrappers. 2018-01-15 18:39:40 -08:00
voussoir 526cc7e07d Add search form input for created. 2018-01-13 20:02:12 -08:00
voussoir ec4b5b014b Oops, fix missing return statement.
That would cause problems.
2018-01-13 16:14:01 -08:00
voussoir 57f007d595 Don't use `from etiquette import`. 2018-01-13 16:12:52 -08:00
voussoir d84fc037fe Use urandom instead of uuid for session id. 2018-01-13 15:49:14 -08:00
voussoir c049b97bc6 Replace etiquette_flask.py with endpoints package.
Split the object types' endpoints into separate files and group
them better. Should be much easier to navigate and expand.
2018-01-11 19:40:56 -08:00
voussoir 5fccf5548b Add Before and After search links to the photo sidebar. 2018-01-11 16:11:38 -08:00
voussoir fe88cdc413 Add decorator catch_etiquette_exception.
To reduce the number of 500 errors and provide 400 instead.
2018-01-09 21:21:15 -08:00
voussoir b89d5f77d5 Oops, add back some css classes that I missed during the rearrangement. 2017-12-20 20:11:34 -08:00
voussoir 1f7247dbe1 Add paste/unpaste buttons to clipboard tray toolbox for albums. 2017-12-16 14:19:37 -08:00
voussoir 3d8aeec484 Add API endpoints for add/remove photo from album. 2017-12-16 14:19:00 -08:00
voussoir e41532cff1 Rearrange some button CSS classes to be more generic.
Adds CSS variables for the highlight and shadow so they don't need
to be custom-defined for each color of button.
Elements should use more generic classes like green_button instead of
add_tag_button unless there's a good reason.
2017-12-16 14:13:02 -08:00
voussoir f59f94cae9 Fix required_fields looking at wrong jsonify file. 2017-12-16 12:25:01 -08:00
voussoir 4a5583c091 Add tray_lines div so that tray_body might hold more buttons. 2017-12-16 12:24:46 -08:00
voussoir 443d93ce18 Add the clipboard tray where users manage their photo clipboard.
Appearing on search and album pages, the tray is where you can
remove items from your clipboard without having to click on its
checkbox -- that photo card may not even be on the current page.
2017-12-16 03:47:54 -08:00
voussoir 0b5f736574 Few minor text fixes. 2017-12-16 03:45:07 -08:00
voussoir 55f7da7bb2 Add the photo_clipboard feature with localStorage.
photo_card objects now have a checkbox which adds them
to the clipboard. No pasting or other operations yet.
2017-12-09 17:48:56 -08:00
voussoir f69d9d409d Give the editor toolbox a CSS class. 2017-12-08 11:59:27 -08:00
voussoir 0d0354f4da Rename normalize_filepath to remove_path_badchars.
Because the function does not do any resolving or converting
to an absolute path, I feel the name 'normalize' is inaccurate
and could be misleading when read. This is more clear.
2017-12-07 21:15:10 -08:00
voussoir 156e467814 Display album hierarchy as nested bullets instead of separate lists.
Not perfect yet but I didn't like having all those header elements.
2017-11-27 16:00:52 -08:00
voussoir bdbded6467 'info' link should point to /tag/x instead of /tags/x 2017-11-26 02:49:57 -08:00
voussoir a0e0e9fbd2 Add a link to the info page for each tag. 2017-11-26 02:40:15 -08:00
voussoir b3c9dd58f5 Allow custom innertext besides just the tag's name. 2017-11-26 02:38:39 -08:00
voussoir f052858d5f Improve log creation and use custom formatter. 2017-11-26 02:37:11 -08:00
voussoir a510c7b55c Improve Album bytes caching, start caching photo count.
More careful uncaching of the summed bytes, to minimize
recalculation. Fewer cases where the album itself
is removed from the photodb's getter cache.

This also helps the download link on album pages disappear if
the child albums don't actually have any photos.
2017-11-12 15:21:53 -08:00
voussoir b721e5a1cd Move site tests to the site frontend folder. 2017-11-12 01:14:02 -08:00
voussoir bb5fa816d8 Cleanup: Rename GroupableMixin.add to add_child for clarity.
Especially since for albums it might sound like you're adding a photo.
2017-11-11 22:41:26 -08:00
voussoir 3f69a2c240 Cleanup: Replace "objectid" with "object_id" in the Python portions. 2017-11-11 22:38:51 -08:00
voussoir c75071ad2d Clean up the erepl code a little bit. 2017-11-11 21:40:18 -08:00
voussoir 26a034c9a0 Make `Photo.author` a @property; None if no author. 2017-09-23 10:58:04 -07:00
voussoir 4836efcf23 HTTP redirect /tag/synonym to /tag/master. 2017-09-18 14:16:33 -07:00
voussoir f4ee7ddd9e Include werkzeug Response type in typecheck. 2017-09-18 14:10:25 -07:00
voussoir e592b55fb1 Use CSS Grid for the header container.
The elements still use flex for spacing simplicity.
2017-08-01 18:37:25 -07:00
voussoir f9524a1858 Switch to CSS Grid for the photo cards. 2017-08-01 18:25:28 -07:00
voussoir c3c86de7f8 Only navigate to the album on 200. 2017-07-29 15:40:40 -07:00