mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2025-12-23 09:31:07 -05:00
Fix map initialization and park area selection in moderation submission edit view
This commit is contained in:
@@ -1,54 +1,56 @@
|
||||
from django import template
|
||||
from django.apps import apps
|
||||
from django.core.exceptions import ObjectDoesNotExist
|
||||
from rides.models import CATEGORY_CHOICES
|
||||
from django.utils.safestring import mark_safe
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
|
||||
register = template.Library()
|
||||
|
||||
@register.filter
|
||||
def get_object(value, model_path):
|
||||
"""
|
||||
Template filter to get an object instance from its ID and model path.
|
||||
Usage: {{ value|get_object:'app_label.ModelName' }}
|
||||
"""
|
||||
def get_object_name(value, model_path):
|
||||
"""Get object name from ID and model path."""
|
||||
if not value:
|
||||
return None
|
||||
|
||||
app_label, model = model_path.split('.')
|
||||
try:
|
||||
app_label, model_name = model_path.split('.')
|
||||
model = apps.get_model(app_label, model_name)
|
||||
return model.objects.get(id=value)
|
||||
except (ValueError, LookupError, ObjectDoesNotExist):
|
||||
content_type = ContentType.objects.get(app_label=app_label.lower(), model=model.lower())
|
||||
model_class = content_type.model_class()
|
||||
obj = model_class.objects.get(id=value)
|
||||
return str(obj)
|
||||
except Exception:
|
||||
return None
|
||||
|
||||
@register.filter
|
||||
def get_category_display(value):
|
||||
"""
|
||||
Template filter to get the display name for a ride category.
|
||||
Usage: {{ value|get_category_display }}
|
||||
"""
|
||||
try:
|
||||
return dict(CATEGORY_CHOICES).get(value, value)
|
||||
except (KeyError, AttributeError):
|
||||
return value
|
||||
|
||||
@register.filter
|
||||
def get_object_name(value, model_path):
|
||||
"""
|
||||
Template filter to get an object's name from its ID and model path.
|
||||
Usage: {{ value|get_object_name:'app_label.ModelName' }}
|
||||
"""
|
||||
obj = get_object(value, model_path)
|
||||
return obj.name if obj else None
|
||||
"""Get display value for ride category."""
|
||||
if not value:
|
||||
return None
|
||||
|
||||
categories = {
|
||||
'RC': 'Roller Coaster',
|
||||
'DR': 'Dark Ride',
|
||||
'FR': 'Flat Ride',
|
||||
'WR': 'Water Ride',
|
||||
'TR': 'Transport',
|
||||
'OT': 'Other'
|
||||
}
|
||||
return categories.get(value, value)
|
||||
|
||||
@register.filter
|
||||
def get_park_area_name(value, park_id):
|
||||
"""
|
||||
Template filter to get a park area's name from its ID and park ID.
|
||||
Usage: {{ value|get_park_area_name:park_id }}
|
||||
"""
|
||||
try:
|
||||
ParkArea = apps.get_model('parks', 'ParkArea')
|
||||
area = ParkArea.objects.get(id=value, park_id=park_id)
|
||||
return area.name
|
||||
except (ValueError, LookupError, ObjectDoesNotExist):
|
||||
"""Get park area name from ID and park ID."""
|
||||
if not value or not park_id:
|
||||
return None
|
||||
|
||||
try:
|
||||
from parks.models import ParkArea
|
||||
area = ParkArea.objects.get(id=value, park_id=park_id)
|
||||
return str(area)
|
||||
except Exception:
|
||||
return None
|
||||
|
||||
@register.filter
|
||||
def get_item(dictionary, key):
|
||||
"""Get item from dictionary by key."""
|
||||
if not dictionary or not key:
|
||||
return []
|
||||
return dictionary.get(str(key), [])
|
||||
|
||||
Reference in New Issue
Block a user