a few random new todos
This commit is contained in:
94
TODO
94
TODO
@@ -1,6 +1,10 @@
|
|||||||
### GENERAL
|
### GENERAL
|
||||||
* change the rotation code to use that jpeg util to reduce/remove compression loss?
|
* change the rotation code to use that jpeg util to reduce/remove compression loss?
|
||||||
|
|
||||||
|
* allow changing dates in move dbox and then re-scan for existing folders OR just have a browse for existing...
|
||||||
|
- for use on scanned photos, they register as 2010, but are datestamped in visuals for 95
|
||||||
|
(is there a library for this???)
|
||||||
|
|
||||||
* read this: https://flask.palletsprojects.com/en/2.2.x/testing/#faking-resources-and-context
|
* read this: https://flask.palletsprojects.com/en/2.2.x/testing/#faking-resources-and-context
|
||||||
|
|
||||||
* could get better AI optim, by keeping track of just new files since scan (even if we did this from the DB),
|
* could get better AI optim, by keeping track of just new files since scan (even if we did this from the DB),
|
||||||
@@ -25,6 +29,9 @@
|
|||||||
job.py:@app.route("/jobs", methods=["GET", "POST"])
|
job.py:@app.route("/jobs", methods=["GET", "POST"])
|
||||||
job.py:@app.route("/job/<id>", methods=["GET","POST"])
|
job.py:@app.route("/job/<id>", methods=["GET","POST"])
|
||||||
-- these need to store 'job prefs' somewhere... (extras?)
|
-- these need to store 'job prefs' somewhere... (extras?)
|
||||||
|
* if on jobs page and jobs increase, then 'rebuild' the content of the page to show new jobs, and potentially do that every 5 seconds...
|
||||||
|
- THINK: could also 'refresh' /job/id via Ajax not a reload, to avoid the POST issue above needing to remember job prefs somewhere?
|
||||||
|
|
||||||
files.py:@app.route("/fix_dups", methods=["POST"])
|
files.py:@app.route("/fix_dups", methods=["POST"])
|
||||||
???
|
???
|
||||||
|
|
||||||
@@ -103,6 +110,7 @@
|
|||||||
|
|
||||||
### FUTURE:
|
### FUTURE:
|
||||||
* real first-run, 'no or empty settings' -- need to think this through
|
* real first-run, 'no or empty settings' -- need to think this through
|
||||||
|
- should set base_path to /pa (and then either /pa or /pa/import, /pa/storage, etc. can be 1 or more volume(s) in docker)
|
||||||
|
|
||||||
* deal with changing a path in settings
|
* deal with changing a path in settings
|
||||||
|
|
||||||
@@ -110,3 +118,89 @@
|
|||||||
-NO sadly
|
-NO sadly
|
||||||
|
|
||||||
* work out why gitignore does not ignore say .pa_bin but has to ignore .pa_metada
|
* work out why gitignore does not ignore say .pa_bin but has to ignore .pa_metada
|
||||||
|
|
||||||
|
#### CHAT GPT f/b
|
||||||
|
|
||||||
|
docstrings for documentation / example:
|
||||||
|
|
||||||
|
def AddRefimgToPerson(person, refimg):
|
||||||
|
"""
|
||||||
|
Adds a reference image to a person object's list of reference images.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
person (Person): A Person object to which the reference image should be added.
|
||||||
|
refimg (str): The filepath to the reference image to be added.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
None
|
||||||
|
|
||||||
|
Raises:
|
||||||
|
ValueError: If person or refimg are None or empty strings.
|
||||||
|
TypeError: If person is not an instance of the Person class.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
person = Person(name="John Doe")
|
||||||
|
AddRefimgToPerson(person, "/path/to/reference/image.jpg")
|
||||||
|
"""
|
||||||
|
if not person:
|
||||||
|
raise ValueError("person is None or empty")
|
||||||
|
if not refimg:
|
||||||
|
raise ValueError("refimg is None or empty")
|
||||||
|
|
||||||
|
if not isinstance(person, Person):
|
||||||
|
raise TypeError("person must be an instance of the Person class")
|
||||||
|
|
||||||
|
person.add_reference_image(refimg)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
TESTING:
|
||||||
|
|
||||||
|
def test_AddRefimgToPerson():
|
||||||
|
# Create a test person object
|
||||||
|
person = Person(name='John Doe', age=30)
|
||||||
|
|
||||||
|
# Create a test image object
|
||||||
|
image = Image(file_path='test.jpg', caption='Test image')
|
||||||
|
|
||||||
|
# Call the function to add the image to the person
|
||||||
|
AddRefimgToPerson(person, image)
|
||||||
|
|
||||||
|
# Check that the image was added to the person's list of images
|
||||||
|
assert image in person.images, "Image was not added to person's list of images"
|
||||||
|
|
||||||
|
# Check that the image's reference to the person is set correctly
|
||||||
|
assert image.person == person, "Image's reference to person is not set correctly"
|
||||||
|
|
||||||
|
TYPING:
|
||||||
|
look at from typing, e.g. ...
|
||||||
|
|
||||||
|
from typing import Type
|
||||||
|
|
||||||
|
def get_person_info(person: Type[Person]) -> str:
|
||||||
|
|
||||||
|
|
||||||
|
OR:
|
||||||
|
|
||||||
|
|
||||||
|
from typing import List
|
||||||
|
|
||||||
|
def AddRefimgToPerson(person_id: int, ref_images: List[str]) -> bool:
|
||||||
|
"""
|
||||||
|
Adds reference images to a person's profile.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
person_id (int): The ID of the person whose profile should be updated.
|
||||||
|
ref_images (List[str]): A list of file paths or URLs for the reference images to add.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
bool: True if the images were successfully added, False otherwise.
|
||||||
|
|
||||||
|
Raises:
|
||||||
|
ValueError: If person_id is not a positive integer or if ref_images is empty or contains
|
||||||
|
any non-string values.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
>>> AddRefimgToPerson(123, ['http://example.com/img1.jpg', '/path/to/img2.png'])
|
||||||
|
True
|
||||||
|
"""
|
||||||
|
|||||||
Reference in New Issue
Block a user