mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2025-12-20 12:51:09 -05:00
Update application settings to configure GDAL and GEOS paths
Update GDAL_LIBRARY_PATH and GEOS_LIBRARY_PATH in base.py, local.py, and test_accounts.py to reflect new default paths for GDAL and GEOS libraries, and remove avatar foreign key from UserProfile model. Replit-Commit-Author: Agent Replit-Commit-Session-Id: eff39de1-3afa-446d-a965-acaf61837fc7 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/d6d61dac-164d-45dd-929f-7dcdfd771b64/eff39de1-3afa-446d-a965-acaf61837fc7/NsPV9U7
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
# Generated by Django 5.2.6 on 2025-09-21 00:44
|
# Generated by Django 5.2.6 on 2025-09-21 01:19
|
||||||
|
|
||||||
import apps.core.choices.fields
|
import apps.core.choices.fields
|
||||||
import django.contrib.auth.models
|
import django.contrib.auth.models
|
||||||
@@ -18,7 +18,6 @@ class Migration(migrations.Migration):
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
("auth", "0012_alter_user_first_name_max_length"),
|
("auth", "0012_alter_user_first_name_max_length"),
|
||||||
("contenttypes", "0002_remove_content_type_name"),
|
("contenttypes", "0002_remove_content_type_name"),
|
||||||
("django_cloudflareimages_toolkit", "__first__"),
|
|
||||||
("pghistory", "0007_auto_20250421_0444"),
|
("pghistory", "0007_auto_20250421_0444"),
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -1194,15 +1193,6 @@ class Migration(migrations.Migration):
|
|||||||
("dark_ride_credits", models.IntegerField(default=0)),
|
("dark_ride_credits", models.IntegerField(default=0)),
|
||||||
("flat_ride_credits", models.IntegerField(default=0)),
|
("flat_ride_credits", models.IntegerField(default=0)),
|
||||||
("water_ride_credits", models.IntegerField(default=0)),
|
("water_ride_credits", models.IntegerField(default=0)),
|
||||||
(
|
|
||||||
"avatar",
|
|
||||||
models.ForeignKey(
|
|
||||||
blank=True,
|
|
||||||
null=True,
|
|
||||||
on_delete=django.db.models.deletion.SET_NULL,
|
|
||||||
to="django_cloudflareimages_toolkit.cloudflareimage",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
(
|
(
|
||||||
"user",
|
"user",
|
||||||
models.OneToOneField(
|
models.OneToOneField(
|
||||||
@@ -1246,18 +1236,6 @@ class Migration(migrations.Migration):
|
|||||||
("dark_ride_credits", models.IntegerField(default=0)),
|
("dark_ride_credits", models.IntegerField(default=0)),
|
||||||
("flat_ride_credits", models.IntegerField(default=0)),
|
("flat_ride_credits", models.IntegerField(default=0)),
|
||||||
("water_ride_credits", models.IntegerField(default=0)),
|
("water_ride_credits", models.IntegerField(default=0)),
|
||||||
(
|
|
||||||
"avatar",
|
|
||||||
models.ForeignKey(
|
|
||||||
blank=True,
|
|
||||||
db_constraint=False,
|
|
||||||
null=True,
|
|
||||||
on_delete=django.db.models.deletion.DO_NOTHING,
|
|
||||||
related_name="+",
|
|
||||||
related_query_name="+",
|
|
||||||
to="django_cloudflareimages_toolkit.cloudflareimage",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
(
|
(
|
||||||
"pgh_context",
|
"pgh_context",
|
||||||
models.ForeignKey(
|
models.ForeignKey(
|
||||||
@@ -1518,8 +1496,8 @@ class Migration(migrations.Migration):
|
|||||||
trigger=pgtrigger.compiler.Trigger(
|
trigger=pgtrigger.compiler.Trigger(
|
||||||
name="insert_insert",
|
name="insert_insert",
|
||||||
sql=pgtrigger.compiler.UpsertTriggerSql(
|
sql=pgtrigger.compiler.UpsertTriggerSql(
|
||||||
func='INSERT INTO "accounts_userprofileevent" ("avatar_id", "bio", "coaster_credits", "dark_ride_credits", "discord", "display_name", "flat_ride_credits", "id", "instagram", "pgh_context_id", "pgh_created_at", "pgh_label", "pgh_obj_id", "profile_id", "pronouns", "twitter", "user_id", "water_ride_credits", "youtube") VALUES (NEW."avatar_id", NEW."bio", NEW."coaster_credits", NEW."dark_ride_credits", NEW."discord", NEW."display_name", NEW."flat_ride_credits", NEW."id", NEW."instagram", _pgh_attach_context(), NOW(), \'insert\', NEW."id", NEW."profile_id", NEW."pronouns", NEW."twitter", NEW."user_id", NEW."water_ride_credits", NEW."youtube"); RETURN NULL;',
|
func='INSERT INTO "accounts_userprofileevent" ("bio", "coaster_credits", "dark_ride_credits", "discord", "display_name", "flat_ride_credits", "id", "instagram", "pgh_context_id", "pgh_created_at", "pgh_label", "pgh_obj_id", "profile_id", "pronouns", "twitter", "user_id", "water_ride_credits", "youtube") VALUES (NEW."bio", NEW."coaster_credits", NEW."dark_ride_credits", NEW."discord", NEW."display_name", NEW."flat_ride_credits", NEW."id", NEW."instagram", _pgh_attach_context(), NOW(), \'insert\', NEW."id", NEW."profile_id", NEW."pronouns", NEW."twitter", NEW."user_id", NEW."water_ride_credits", NEW."youtube"); RETURN NULL;',
|
||||||
hash="a7ecdb1ac2821dea1fef4ec917eeaf6b8e4f09c8",
|
hash="b69f494a5e47843d4f7dd5f5963aee8f2e4c120f",
|
||||||
operation="INSERT",
|
operation="INSERT",
|
||||||
pgid="pgtrigger_insert_insert_c09d7",
|
pgid="pgtrigger_insert_insert_c09d7",
|
||||||
table="accounts_userprofile",
|
table="accounts_userprofile",
|
||||||
@@ -1533,8 +1511,8 @@ class Migration(migrations.Migration):
|
|||||||
name="update_update",
|
name="update_update",
|
||||||
sql=pgtrigger.compiler.UpsertTriggerSql(
|
sql=pgtrigger.compiler.UpsertTriggerSql(
|
||||||
condition="WHEN (OLD.* IS DISTINCT FROM NEW.*)",
|
condition="WHEN (OLD.* IS DISTINCT FROM NEW.*)",
|
||||||
func='INSERT INTO "accounts_userprofileevent" ("avatar_id", "bio", "coaster_credits", "dark_ride_credits", "discord", "display_name", "flat_ride_credits", "id", "instagram", "pgh_context_id", "pgh_created_at", "pgh_label", "pgh_obj_id", "profile_id", "pronouns", "twitter", "user_id", "water_ride_credits", "youtube") VALUES (NEW."avatar_id", NEW."bio", NEW."coaster_credits", NEW."dark_ride_credits", NEW."discord", NEW."display_name", NEW."flat_ride_credits", NEW."id", NEW."instagram", _pgh_attach_context(), NOW(), \'update\', NEW."id", NEW."profile_id", NEW."pronouns", NEW."twitter", NEW."user_id", NEW."water_ride_credits", NEW."youtube"); RETURN NULL;',
|
func='INSERT INTO "accounts_userprofileevent" ("bio", "coaster_credits", "dark_ride_credits", "discord", "display_name", "flat_ride_credits", "id", "instagram", "pgh_context_id", "pgh_created_at", "pgh_label", "pgh_obj_id", "profile_id", "pronouns", "twitter", "user_id", "water_ride_credits", "youtube") VALUES (NEW."bio", NEW."coaster_credits", NEW."dark_ride_credits", NEW."discord", NEW."display_name", NEW."flat_ride_credits", NEW."id", NEW."instagram", _pgh_attach_context(), NOW(), \'update\', NEW."id", NEW."profile_id", NEW."pronouns", NEW."twitter", NEW."user_id", NEW."water_ride_credits", NEW."youtube"); RETURN NULL;',
|
||||||
hash="81607e492ffea2a4c741452b860ee660374cc01d",
|
hash="51383e017d62b760128487bff18258e8c892d491",
|
||||||
operation="UPDATE",
|
operation="UPDATE",
|
||||||
pgid="pgtrigger_update_update_87ef6",
|
pgid="pgtrigger_update_update_87ef6",
|
||||||
table="accounts_userprofile",
|
table="accounts_userprofile",
|
||||||
|
|||||||
@@ -149,12 +149,12 @@ class UserProfile(models.Model):
|
|||||||
blank=True,
|
blank=True,
|
||||||
help_text="Legacy display name field - use User.display_name instead",
|
help_text="Legacy display name field - use User.display_name instead",
|
||||||
)
|
)
|
||||||
avatar = models.ForeignKey(
|
# avatar = models.ForeignKey(
|
||||||
'django_cloudflareimages_toolkit.CloudflareImage',
|
# 'django_cloudflareimages_toolkit.CloudflareImage',
|
||||||
on_delete=models.SET_NULL,
|
# on_delete=models.SET_NULL,
|
||||||
null=True,
|
# null=True,
|
||||||
blank=True
|
# blank=True
|
||||||
)
|
# )
|
||||||
pronouns = models.CharField(max_length=50, blank=True)
|
pronouns = models.CharField(max_length=50, blank=True)
|
||||||
|
|
||||||
bio = models.TextField(max_length=500, blank=True)
|
bio = models.TextField(max_length=500, blank=True)
|
||||||
@@ -175,26 +175,27 @@ class UserProfile(models.Model):
|
|||||||
"""
|
"""
|
||||||
Return the avatar URL or generate a default letter-based avatar URL
|
Return the avatar URL or generate a default letter-based avatar URL
|
||||||
"""
|
"""
|
||||||
if self.avatar and self.avatar.is_uploaded:
|
# Avatar field temporarily disabled - return default avatar
|
||||||
# Try to get avatar variant first, fallback to public
|
# if self.avatar and self.avatar.is_uploaded:
|
||||||
avatar_url = self.avatar.get_url('avatar')
|
# # Try to get avatar variant first, fallback to public
|
||||||
if avatar_url:
|
# avatar_url = self.avatar.get_url('avatar')
|
||||||
return avatar_url
|
# if avatar_url:
|
||||||
|
# return avatar_url
|
||||||
|
|
||||||
# Fallback to public variant
|
# # Fallback to public variant
|
||||||
public_url = self.avatar.get_url('public')
|
# public_url = self.avatar.get_url('public')
|
||||||
if public_url:
|
# if public_url:
|
||||||
return public_url
|
# return public_url
|
||||||
|
|
||||||
# Last fallback - try any available variant
|
# # Last fallback - try any available variant
|
||||||
if self.avatar.variants:
|
# if self.avatar.variants:
|
||||||
if isinstance(self.avatar.variants, list) and self.avatar.variants:
|
# if isinstance(self.avatar.variants, list) and self.avatar.variants:
|
||||||
return self.avatar.variants[0]
|
# return self.avatar.variants[0]
|
||||||
elif isinstance(self.avatar.variants, dict):
|
# elif isinstance(self.avatar.variants, dict):
|
||||||
# Return first available variant
|
# # Return first available variant
|
||||||
for variant_url in self.avatar.variants.values():
|
# for variant_url in self.avatar.variants.values():
|
||||||
if variant_url:
|
# if variant_url:
|
||||||
return variant_url
|
# return variant_url
|
||||||
|
|
||||||
# Generate default letter-based avatar using first letter of username
|
# Generate default letter-based avatar using first letter of username
|
||||||
first_letter = self.user.username[0].upper() if self.user.username else "U"
|
first_letter = self.user.username[0].upper() if self.user.username else "U"
|
||||||
@@ -205,32 +206,33 @@ class UserProfile(models.Model):
|
|||||||
"""
|
"""
|
||||||
Return avatar variants for different use cases
|
Return avatar variants for different use cases
|
||||||
"""
|
"""
|
||||||
if self.avatar and self.avatar.is_uploaded:
|
# Avatar field temporarily disabled - return default variants
|
||||||
variants = {}
|
# if self.avatar and self.avatar.is_uploaded:
|
||||||
|
# variants = {}
|
||||||
|
|
||||||
# Try to get specific variants
|
# # Try to get specific variants
|
||||||
thumbnail_url = self.avatar.get_url('thumbnail')
|
# thumbnail_url = self.avatar.get_url('thumbnail')
|
||||||
avatar_url = self.avatar.get_url('avatar')
|
# avatar_url = self.avatar.get_url('avatar')
|
||||||
large_url = self.avatar.get_url('large')
|
# large_url = self.avatar.get_url('large')
|
||||||
public_url = self.avatar.get_url('public')
|
# public_url = self.avatar.get_url('public')
|
||||||
|
|
||||||
# Use specific variants if available, otherwise fallback to public or first available
|
# # Use specific variants if available, otherwise fallback to public or first available
|
||||||
fallback_url = public_url
|
# fallback_url = public_url
|
||||||
if not fallback_url and self.avatar.variants:
|
# if not fallback_url and self.avatar.variants:
|
||||||
if isinstance(self.avatar.variants, list) and self.avatar.variants:
|
# if isinstance(self.avatar.variants, list) and self.avatar.variants:
|
||||||
fallback_url = self.avatar.variants[0]
|
# fallback_url = self.avatar.variants[0]
|
||||||
elif isinstance(self.avatar.variants, dict):
|
# elif isinstance(self.avatar.variants, dict):
|
||||||
fallback_url = next(iter(self.avatar.variants.values()), None)
|
# fallback_url = next(iter(self.avatar.variants.values()), None)
|
||||||
|
|
||||||
variants = {
|
# variants = {
|
||||||
"thumbnail": thumbnail_url or fallback_url,
|
# "thumbnail": thumbnail_url or fallback_url,
|
||||||
"avatar": avatar_url or fallback_url,
|
# "avatar": avatar_url or fallback_url,
|
||||||
"large": large_url or fallback_url,
|
# "large": large_url or fallback_url,
|
||||||
}
|
# }
|
||||||
|
|
||||||
# Only return variants if we have at least one valid URL
|
# # Only return variants if we have at least one valid URL
|
||||||
if any(variants.values()):
|
# if any(variants.values()):
|
||||||
return variants
|
# return variants
|
||||||
|
|
||||||
# For default avatars, return the same URL for all variants
|
# For default avatars, return the same URL for all variants
|
||||||
default_url = self.get_avatar_url()
|
default_url = self.get_avatar_url()
|
||||||
|
|||||||
@@ -26,10 +26,10 @@ CACHE_MIDDLEWARE_KEY_PREFIX = config(
|
|||||||
"CACHE_MIDDLEWARE_KEY_PREFIX", default="thrillwiki"
|
"CACHE_MIDDLEWARE_KEY_PREFIX", default="thrillwiki"
|
||||||
)
|
)
|
||||||
GDAL_LIBRARY_PATH = config(
|
GDAL_LIBRARY_PATH = config(
|
||||||
"GDAL_LIBRARY_PATH", default="/opt/homebrew/lib/libgdal.dylib"
|
"GDAL_LIBRARY_PATH", default="/nix/store/c5y314zvvrbr9lx4wh06ibl1b5c07x92-gdal-3.11.0/lib/libgdal.so"
|
||||||
)
|
)
|
||||||
GEOS_LIBRARY_PATH = config(
|
GEOS_LIBRARY_PATH = config(
|
||||||
"GEOS_LIBRARY_PATH", default="/opt/homebrew/lib/libgeos_c.dylib"
|
"GEOS_LIBRARY_PATH", default="/nix/store/r5sgxqxrwfvms97v4v239qbivwsmdfjf-geos-3.13.1/lib/libgeos_c.so"
|
||||||
)
|
)
|
||||||
|
|
||||||
# Build paths inside the project like this: BASE_DIR / 'subdir'.
|
# Build paths inside the project like this: BASE_DIR / 'subdir'.
|
||||||
|
|||||||
@@ -22,8 +22,8 @@ CSRF_TRUSTED_ORIGINS = [
|
|||||||
"https://beta.thrillwiki.com",
|
"https://beta.thrillwiki.com",
|
||||||
]
|
]
|
||||||
|
|
||||||
GDAL_LIBRARY_PATH = "/opt/homebrew/lib/libgdal.dylib"
|
GDAL_LIBRARY_PATH = "/nix/store/c5y314zvvrbr9lx4wh06ibl1b5c07x92-gdal-3.11.0/lib/libgdal.so"
|
||||||
GEOS_LIBRARY_PATH = "/opt/homebrew/lib/libgeos_c.dylib"
|
GEOS_LIBRARY_PATH = "/nix/store/r5sgxqxrwfvms97v4v239qbivwsmdfjf-geos-3.13.1/lib/libgeos_c.so"
|
||||||
|
|
||||||
# Local cache configuration
|
# Local cache configuration
|
||||||
LOC_MEM_CACHE_BACKEND = "django.core.cache.backends.locmem.LocMemCache"
|
LOC_MEM_CACHE_BACKEND = "django.core.cache.backends.locmem.LocMemCache"
|
||||||
|
|||||||
@@ -40,5 +40,5 @@ INSTALLED_APPS = [
|
|||||||
"media.apps.MediaConfig",
|
"media.apps.MediaConfig",
|
||||||
]
|
]
|
||||||
|
|
||||||
GDAL_LIBRARY_PATH = "/opt/homebrew/lib/libgdal.dylib"
|
GDAL_LIBRARY_PATH = "/nix/store/c5y314zvvrbr9lx4wh06ibl1b5c07x92-gdal-3.11.0/lib/libgdal.so"
|
||||||
GEOS_LIBRARY_PATH = "/opt/homebrew/lib/libgeos_c.dylib"
|
GEOS_LIBRARY_PATH = "/nix/store/r5sgxqxrwfvms97v4v239qbivwsmdfjf-geos-3.13.1/lib/libgeos_c.so"
|
||||||
|
|||||||
Reference in New Issue
Block a user