From 23fee50a77fdf154b906938bea9e0020c7bf2afe Mon Sep 17 00:00:00 2001 From: Lilfade Date: Mon, 23 Jun 2025 04:08:45 -0500 Subject: [PATCH] working, images broken --- app/__init__.py | 4 + nip.zip | Bin 257503 -> 258892 bytes plugins/media/routes.py | 69 ++++++-------- plugins/plant/models.py | 4 +- plugins/plant/routes.py | 7 +- plugins/plant/templates/plant/index.html | 14 ++- plugins/utility/routes.py | 116 ++++++++++++++++------- 7 files changed, 135 insertions(+), 79 deletions(-) diff --git a/app/__init__.py b/app/__init__.py index 9bf3355..71e16a5 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -22,6 +22,8 @@ migrate = Migrate() login_manager = LoginManager() csrf = CSRFProtect() +from plugins.media.routes import generate_image_url # Import it here + def create_app(): app = Flask(__name__) @@ -111,5 +113,7 @@ def create_app(): def inject_current_year(): from datetime import datetime return {'current_year': datetime.now().year} + + app.jinja_env.globals['generate_image_url'] = generate_image_url return app diff --git a/nip.zip b/nip.zip index 891f64a5380773cb16f3009209f5d3bc49ce53fb..db638351cb73870623816b9df3de8fb1c28540a4 100644 GIT binary patch delta 55119 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 mJ#?}MS2PYM!M2Aw4ATP2*|cQ^}#eEPm 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�#%-#}|0l-o> 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 YJ4p&#wE(VfxKaN<$kG&hh&LMl2Ng1fg#Z8m diff --git a/plugins/media/routes.py b/plugins/media/routes.py index 4a68307..cdd30dd 100644 --- a/plugins/media/routes.py +++ b/plugins/media/routes.py @@ -1,7 +1,8 @@ # plugins/media/routes.py import os -from uuid import uuid4 +import uuid +from werkzeug.utils import secure_filename from datetime import datetime from PIL import Image, ExifTags @@ -73,48 +74,40 @@ def _strip_exif(image: Image.Image) -> Image.Image: return image -def _process_upload_file( - file, - uploader_id: int, - plugin: str, - related_id: int -): - """ - Save the uploaded image (strip EXIF), write Media row with - file_url, and return the Media instance. - """ - ext = os.path.splitext(file.filename)[1].lower() - if ext not in {".jpg", ".jpeg", ".png", ".gif", ".webp"}: - raise ValueError("Unsupported file type.") +def _process_upload_file(file, uploader_id, plugin='', related_id=0, plant_id=None, growlog_id=None, caption=None): + """Handles saving an uploaded file and creating the Media record.""" - # generate a stable filename - filename = f"{uuid4().hex}{ext}" - - # determine disk path - abs_dir, subdir = get_upload_path(plugin, related_id) - full_path = os.path.join(abs_dir, filename) - - # strip EXIF and save - img = Image.open(file) - img = _strip_exif(img) - img.save(full_path) - - # create the DB record + # Generate a unique filename now = datetime.utcnow() - media = Media( - uploader_id=uploader_id, - file_url=f"{subdir}/{filename}", - uploaded_at=now + unique_id = str(uuid.uuid4()).replace("-", "") + secure_name = secure_filename(file.filename) + filename = f"{unique_id}_{secure_name}" + + # Construct the save path + storage_path = os.path.join( + current_app.config['UPLOAD_FOLDER'], + str(uploader_id), + now.strftime('%Y/%m/%d') ) + os.makedirs(storage_path, exist_ok=True) - # legacy relationships - if plugin == "plant": - media.plant_id = related_id - elif plugin == "growlog": - media.growlog_id = related_id + full_path = os.path.join(storage_path, filename) + file.save(full_path) - db.session.add(media) - db.session.commit() + file_url = f"/{uploader_id}/{now.strftime('%Y/%m/%d')}/{filename}" + + media = Media( + plugin=plugin, + related_id=related_id, + filename=filename, + uploaded_at=now, + uploader_id=uploader_id, + caption=caption, + plant_id=plant_id, + growlog_id=growlog_id, + created_at=now, + file_url=file_url + ) return media diff --git a/plugins/plant/models.py b/plugins/plant/models.py index 237b137..88a2751 100644 --- a/plugins/plant/models.py +++ b/plugins/plant/models.py @@ -101,14 +101,14 @@ class Plant(db.Model): media_items = db.relationship( 'plugins.media.models.Media', back_populates='plant', - lazy='dynamic', + lazy='select', # ← this is the fix cascade='all, delete-orphan', foreign_keys='plugins.media.models.Media.plant_id' ) @property def media(self): - return self.media_items.all() + return self.media_items # already a list when lazy='select' # the one you see on the detail page featured_media = db.relationship( diff --git a/plugins/plant/routes.py b/plugins/plant/routes.py index cb1a641..165737c 100644 --- a/plugins/plant/routes.py +++ b/plugins/plant/routes.py @@ -1,5 +1,7 @@ from uuid import uuid4 import os +from sqlalchemy.orm import joinedload + from flask import ( Blueprint, render_template, @@ -10,6 +12,7 @@ from flask import ( current_app, ) from flask_login import login_required, current_user + from app import db from .models import Plant, PlantCommonName, PlantScientificName from .forms import PlantForm @@ -37,7 +40,9 @@ def inject_image_helper(): @login_required def index(): plants = ( - Plant.query.filter_by(owner_id=current_user.id) + Plant.query + .options(joinedload(Plant.media_items)) + .filter_by(owner_id=current_user.id) .order_by(Plant.id.desc()) .all() ) diff --git a/plugins/plant/templates/plant/index.html b/plugins/plant/templates/plant/index.html index afcfc55..1694249 100644 --- a/plugins/plant/templates/plant/index.html +++ b/plugins/plant/templates/plant/index.html @@ -154,10 +154,16 @@ {% endif %} - Image for {{ plant.common_name.name }} + {# pick featured → first media if no explicit featured #} + {% set featured = plant.featured_media %} + {% if not featured and plant.media %} + {% set featured = plant.media[0] %} + {% endif %} + Image for {{ plant.common_name.name }}
diff --git a/plugins/utility/routes.py b/plugins/utility/routes.py index a15dadc..0515ae0 100644 --- a/plugins/utility/routes.py +++ b/plugins/utility/routes.py @@ -9,6 +9,7 @@ import uuid import zipfile import tempfile import difflib +import traceback from datetime import datetime # Third‐party @@ -80,7 +81,7 @@ def upload(): filename = file.filename.lower().strip() - # ── ZIP Import Flow ─────────────────────────────────────────────────── + # ── ZIP Import Flow ──────────────────────────────────────────────── if filename.endswith(".zip"): tmp_zip = tempfile.NamedTemporaryFile(delete=False, suffix=".zip") file.save(tmp_zip.name) @@ -127,32 +128,34 @@ def upload(): tmpdir = tempfile.mkdtemp() z.extractall(tmpdir) + # --- load and validate plants.csv --- plant_path = os.path.join(tmpdir, "plants.csv") with open(plant_path, newline="", encoding="utf-8-sig") as pf: reader = csv.DictReader(pf) if reader.fieldnames != PLANT_HEADERS: missing = set(PLANT_HEADERS) - set(reader.fieldnames or []) - extra = set(reader.fieldnames or []) - set(PLANT_HEADERS) + extra = set(reader.fieldnames or []) - set(PLANT_HEADERS) os.remove(tmp_zip.name) flash(f"plants.csv header mismatch. Missing: {missing}, Extra: {extra}", "danger") return redirect(request.url) plant_rows = list(reader) + # --- load and validate media.csv --- media_path = os.path.join(tmpdir, "media.csv") with open(media_path, newline="", encoding="utf-8-sig") as mf: mreader = csv.DictReader(mf) if mreader.fieldnames != MEDIA_HEADERS: missing = set(MEDIA_HEADERS) - set(mreader.fieldnames or []) - extra = set(mreader.fieldnames or []) - set(MEDIA_HEADERS) + extra = set(mreader.fieldnames or []) - set(MEDIA_HEADERS) os.remove(tmp_zip.name) flash(f"media.csv header mismatch. Missing: {missing}, Extra: {extra}", "danger") return redirect(request.url) media_rows = list(mreader) + # --- import plants --- neo = get_neo4j_handler() added_plants = 0 plant_map = {} - for row in plant_rows: common = PlantCommonName.query.filter_by(name=row["Name"]).first() if not common: @@ -192,20 +195,23 @@ def upload(): neo.create_plant_node(p.uuid, row["Name"]) if row.get("Mother UUID"): - neo.create_lineage(child_uuid=p.uuid, parent_uuid=row["Mother UUID"]) + neo.create_lineage( + child_uuid=p.uuid, + parent_uuid=row["Mother UUID"] + ) added_plants += 1 - # ✅ Import media once for the full batch + # --- import media (FIX: now passing plant_id) --- added_media = 0 for mrow in media_rows: plant_uuid = mrow["Plant UUID"] - plant_id = plant_map.get(plant_uuid) + plant_id = plant_map.get(plant_uuid) if not plant_id: continue subpath = mrow["Image Path"].split('uploads/', 1)[-1] - src = os.path.join(tmpdir, "images", subpath) + src = os.path.join(tmpdir, "images", subpath) if not os.path.isfile(src): continue @@ -220,14 +226,18 @@ def upload(): file=file_storage, uploader_id=current_user.id, plugin="plant", - related_id=plant_id + related_id=plant_id, + plant_id=plant_id # ← ensure the FK is set! ) media.uploaded_at = datetime.fromisoformat(mrow["Uploaded At"]) - media.caption = mrow["Source Type"] + media.caption = mrow["Source Type"] db.session.add(media) added_media += 1 except Exception as e: - current_app.logger.warning(f"Failed to import media file: {subpath} → {e}") + current_app.logger.warning( + f"Failed to import media file: {subpath} → {e}" + ) + current_app.logger.debug(traceback.format_exc()) db.session.commit() neo.close() @@ -236,7 +246,7 @@ def upload(): flash(f"Imported {added_plants} plants and {added_media} images.", "success") return redirect(request.url) - # ── Standalone CSV Review Flow ───────────────────────────────────── + # ── CSV Review Flow ───────────────────────────────────────────────── if filename.endswith(".csv"): try: stream = io.StringIO(file.stream.read().decode("utf-8-sig")) @@ -255,18 +265,14 @@ def upload(): review_list = [] all_common = {c.name.lower(): c for c in PlantCommonName.query.all()} - all_sci = {s.name.lower(): s for s in PlantScientificName.query.all()} + all_sci = {s.name.lower(): s for s in PlantScientificName.query.all()} for row in reader: - uuid_raw = row.get("uuid", "") - uuid_val = uuid_raw.strip().strip('"') - name_raw = row.get("name", "") - name = name_raw.strip() - sci_raw = row.get("scientific_name", "") - sci_name = sci_raw.strip() + uuid_val = row.get("uuid", "").strip().strip('"') + name = row.get("name", "").strip() + sci_name = row.get("scientific_name", "").strip() plant_type = row.get("plant_type", "").strip() or "plant" - mother_raw = row.get("mother_uuid", "") - mother_uuid = mother_raw.strip().strip('"') + mother_uuid= row.get("mother_uuid", "").strip().strip('"') if not (uuid_val and name and plant_type): continue @@ -274,17 +280,20 @@ def upload(): suggestions = difflib.get_close_matches( sci_name.lower(), list(all_sci.keys()), - n=1, cutoff=0.8 + n=1, + cutoff=0.8 + ) + suggested = ( + all_sci[suggestions[0]].name + if suggestions and suggestions[0] != sci_name.lower() + else None ) - suggested = (all_sci[suggestions[0]].name - if suggestions and suggestions[0] != sci_name.lower() - else None) item = { - "uuid": uuid_val, - "name": name, - "sci_name": sci_name, - "suggested": suggested, + "uuid": uuid_val, + "name": name, + "sci_name": sci_name, + "suggested": suggested, "plant_type": plant_type, "mother_uuid": mother_uuid } @@ -294,7 +303,44 @@ def upload(): session["review_list"] = review_list return redirect(url_for("utility.review")) - flash("Unsupported file type. Please upload a ZIP or CSV.", "danger") + # ── Direct Media Upload Flow ─────────────────────────────────────── + plugin = request.form.get("plugin", '') + related_id = request.form.get("related_id", 0) + plant_id = request.form.get("plant_id", None) + growlog_id = request.form.get("growlog_id", None) + caption = request.form.get("caption", None) + + now = datetime.utcnow() + unique_id = str(uuid.uuid4()).replace("-", "") + secure_name= secure_filename(file.filename) + storage_path = os.path.join( + current_app.config['UPLOAD_FOLDER'], + str(current_user.id), + now.strftime('%Y/%m/%d') + ) + os.makedirs(storage_path, exist_ok=True) + + full_file_path = os.path.join(storage_path, f"{unique_id}_{secure_name}") + file.save(full_file_path) + + file_url = f"/{current_user.id}/{now.strftime('%Y/%m/%d')}/{unique_id}_{secure_name}" + + media = Media( + plugin=plugin, + related_id=related_id, + filename=f"{unique_id}_{secure_name}", + uploaded_at=now, + uploader_id=current_user.id, + caption=caption, + plant_id=plant_id, + growlog_id=growlog_id, + created_at=now, + file_url=file_url + ) + db.session.add(media) + db.session.commit() + + flash("File uploaded and saved successfully.", "success") return redirect(request.url) return render_template("utility/upload.html", csrf_token=generate_csrf()) @@ -419,10 +465,12 @@ def export_data(): plants_csv = plant_io.getvalue() # 2) Gather media - media_records = (Media.query - .filter_by(uploader_id=current_user.id) - .order_by(Media.id) - .all()) + media_records = ( + Media.query + .filter(Media.uploader_id == current_user.id, Media.plant_id.isnot(None)) + .order_by(Media.id) + .all() + ) # Build media.csv media_io = io.StringIO() mw = csv.writer(media_io)