Adeodato Simó
8df408e07e
Define search_vector_trigger
via Book.Meta.triggers
2023-11-25 17:02:54 -03:00
Adeodato Simó
416a6caf2d
Define author_search_vector_trigger
via Author.Meta.triggers
...
Previously, triggers lived only in a particular migration file. With
this change, code for the triggers resides in the model, and their
lifecycle is managed through normal Django migrations.
2023-11-25 16:17:51 -03:00
Adeodato Simó
ff1f239a57
Use typing_extensions.Self instead of TypeVar
2023-11-19 15:10:14 -03:00
Adeodato Simó
be9d92b1c2
Remove last references to "seal" in partial_date.py and migration
2023-11-09 14:00:45 -03:00
Adeodato Simó
edfa6b18a1
Rename utils.sealed_date module (and tests) to utils.partial_date
2023-11-09 14:00:44 -03:00
Adeodato Simó
fa80aa54a9
SealedDate renames, pt. 2
...
• SealedDate -> PartialDate
• MonthSeal -> MonthParts
• YearSeal -> YearParts
2023-11-09 14:00:44 -03:00
Adeodato Simó
0e4c5ed439
SealedDate renames, pt. 1
...
• SealedDateField -> PartialDateModel
• SealedDateFormField -> PartialDateFormField
• SealedDateDescriptor -> PartialDateDescriptor
2023-11-09 14:00:44 -03:00
Adeodato Simó
1952bb6ddc
fix mypy issues
...
The three "ignore" directives are:
- avoid unreadable boilerplate from inherited `Field` methods; and:
- https://github.com/typeddjango/django-stubs/issues/285#issuecomment-600029858
2023-10-24 18:14:05 -03:00
Adeodato Simó
170d1fe205
fix pylint issues (minus no-else-return
)
2023-10-24 17:41:07 -03:00
Adeodato Simó
737ac8e908
Implement PartialDateField using SealedDate and a custom descriptor
2023-10-24 17:30:15 -03:00
Adeodato Simó
9752819bdb
Add support for parsing partial isoformats back
2023-10-24 17:30:13 -03:00
Adeodato Simó
4b47646e28
Fix typing hints in sealed_date module
...
In particular, SealedDate's class methods always return an instance
of the class they're invoked through (i.e., `SealedDate.from_date_parts`
intentionally never returns `MonthSeal` or `YearSeal`).
To propertly annotate this, a type variable is needed (or the much
simpler `Self` in Python 3.11).
2023-10-24 17:29:04 -03:00
Adeodato Simó
5f619d7a39
Implement SealedDateFormField to preserves partial dates
...
Note that Django forms _already_ have suppport for partial date data; we
just need to extend it when converting to Python (using SealedDate instead
of returning an error).
2023-10-24 17:29:00 -03:00
Adeodato Simó
46d80d56a5
Rename SealedDate.__str__ to partial_isoformat
...
Django uses `str(date)` for backends other than PostgreSQL, so do not
break "YYYY-MM-DD" formatting, just in case.
2023-10-24 04:32:27 -03:00
Adeodato Simó
a9c605ea97
Add SealedDate class for globally-stable, maybe-incomplete dates
2023-10-24 04:32:27 -03:00
Joeri de Ruiter
af5f71f5ac
Revert return type for get_or_set
2023-09-13 10:21:30 +02:00
Joeri de Ruiter
a5cf912ae8
Fix some annotations
2023-09-13 09:22:53 +02:00
Joeri de Ruiter
2e88e73509
Remove returned None to make pylint happy
2023-08-21 14:00:09 +02:00
Joeri de Ruiter
0f2c0c034d
Removed TODOs. When data is invalid return None.
2023-08-21 13:28:08 +02:00
Joeri de Ruiter
ff8e4597e5
Type annotations for utils
2023-08-21 12:56:32 +02:00
Joeri de Ruiter
ae5c27f3bb
Sanitise description from Open Library
2023-08-02 19:30:40 +02:00
Mouse Reeve
2de115fc1e
Add helper to refer views back to http referers safely
...
In most cases, we want to return back to where we came from after
performing an action. It's not safe to return to an arbitrary referer,
so this streamlines using the util validator to verify the redirect and
fall back on regular redirect params if the referer is outside our
domain.
2023-03-20 10:25:38 -07:00
Christof Dorner
f3334b1550
Render hashtag links with data-mention="hashtag" attribute
2023-03-07 13:16:45 +01:00
Christof Dorner
c68304a99b
Parse hashtags and store them in CreateStatus view
2023-03-07 12:55:36 +01:00
Hugh Rundle
c86fdfbd40
black
2023-01-26 16:56:11 +11:00
Hugh Rundle
1fe6892d0a
pylint
2023-01-26 16:54:14 +11:00
Hugh Rundle
aa6eaccfbb
use mocks for isni API calls
...
- fixes a couple of tests making author ISNI calls
- notes a future TODO to remove some possibly useless code
2023-01-26 16:22:50 +11:00
Joachim
fa3edea87b
Update validate.py
2023-01-01 20:51:23 +01:00
Joachim
ac2ef667af
Fix error when no referer
2023-01-01 19:57:10 +01:00
Joachim
bfe04feca9
Add validation util + test
2022-12-30 17:55:47 +01:00
Ell Bradshaw
c9adb7ff12
Linting fixes
2022-11-14 01:04:20 -08:00
Ell Bradshaw
b3603bc3f5
Merge branch 'main' into ignore-does-not-exist
2022-11-14 00:31:34 -08:00
Mouse Reeve
5c3bb2da13
Refactors how mentions are collected
...
This should be quicker, because it queries the users in one go instead
of jumping straight to iterating over them, and it checks if a user
blocks the poster before allowing them to be tagged.
2022-08-05 14:06:39 -07:00
Mouse Reeve
9d9b7f366a
Use "strip" in bleach
...
This removes forbidden html, rather than leaving them in place but
unrendered.
2022-07-04 13:55:58 -07:00
Mouse Reeve
7f78140015
Uses library for html cleanup
2022-07-04 13:21:13 -07:00
Mouse Reeve
94a6675dc4
Pylint fixes
2022-07-02 12:07:22 -07:00
Joel Bradshaw
7014786fe0
Run formatters
2022-06-05 13:41:00 -07:00
Joel Bradshaw
7ae0db7f4a
Ignore VariableDoesNotExist errors in debug logging
...
They're so noisy as to make debug logging useless otherwise
2022-05-30 12:15:50 -07:00
Vivianne Langdon
b0d3eaeb40
allow empty slugs, for non-url-friendly book names
2022-04-08 22:11:05 -07:00
Vivianne Langdon
ebf463fc91
Generation of slugs and new urls to handle slugs
...
- TODO: redirect to correct slug if not found.
2022-03-02 00:21:23 -08:00
Mouse Reeve
556c9ea98f
Adjusts cache get_or_set to work with tests
2022-01-09 12:16:01 -08:00
Mouse Reeve
f2f40cf3b9
Creates custom get_or_set function
2022-01-08 13:01:05 -08:00
Mouse Reeve
a8ae427aeb
Updates domain regex
2021-12-28 15:53:26 -08:00
Mouse Reeve
89c23c3e0c
More thoroughly checking if title is set to avoid error
2021-12-05 09:07:17 -08:00
Hugh Rundle
8e6619294f
oclc server sure is slow
2021-12-01 21:02:25 +11:00
Hugh Rundle
d8e83ffe82
moar code linting
2021-11-22 13:01:58 +11:00
Hugh Rundle
a9d921cc06
code cleanup
2021-11-22 12:52:59 +11:00
Hugh Rundle
09c5a3861b
prefer English language sources for ISNI titles
2021-11-22 12:15:06 +11:00
Hugh Rundle
fd3ed7fb8c
fix author is now class object not dict
2021-11-22 09:25:31 +11:00
Hugh Rundle
fd2ade2313
refactor isni author enrichment
...
- use activitypub.Author instead of custom dict
- prefer to display "Author of [title]" from ISNI data instead of short description
- merge isni and db authors for edit_book display
- fix edit_book template to use changed data
- rename some functions in utils/isni.py
2021-11-22 08:49:22 +11:00