View Venue & Details API
Added a page for viewing venue details. Added an api function for retrieving venue details.
This commit is contained in:
parent
ea1bdda8c2
commit
a112ba38e9
45
src/mainapp/templates/venue_details.html
Normal file
45
src/mainapp/templates/venue_details.html
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
{% extends "base.html" %}
|
||||||
|
{% load static %}
|
||||||
|
|
||||||
|
{% block title %}
|
||||||
|
{{ venue.name }} |
|
||||||
|
{% endblock title %}
|
||||||
|
|
||||||
|
{% block style %}
|
||||||
|
{% endblock style %}
|
||||||
|
|
||||||
|
{% block header_buttons %}
|
||||||
|
{% endblock header_buttons %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-xl-5 col-lg-6 col-md-10">
|
||||||
|
<div class="m-sm-5 m-3">
|
||||||
|
<h1 class="text-company fw-bold">
|
||||||
|
{{ venue.name}}
|
||||||
|
</h1>
|
||||||
|
<div class="text-body-secondary mb-4">
|
||||||
|
<p class="mb-0">{{ venue.street_address }}</p>
|
||||||
|
<p class="mb-0">{{ venue.city }}, {{ venue.provence }}</p>
|
||||||
|
<p class="mb-0">{{ venue.postal_code }}</p>
|
||||||
|
</div>
|
||||||
|
<div class="mb-4">
|
||||||
|
<p class="mb-0">Lorem ipsum dolor sit amet consectetur adipisicing elit. Repudiandae eveniet aspernatur neque vero molestias nemo, voluptatum eum quo blanditiis. Voluptate provident earum placeat impedit cumque sapiente praesentium, alias omnis tempore!</p>
|
||||||
|
<!-- <p class="mb-0">{{ venue.description }}</p> -->
|
||||||
|
</div>
|
||||||
|
<div class="mb-4">
|
||||||
|
<h5 class="text-company">
|
||||||
|
Contact
|
||||||
|
</h5>
|
||||||
|
<div class="text-body-secondary mb-4">
|
||||||
|
<p class="mb-0">{{ venue.phone_number }}</p>
|
||||||
|
<p class="mb-0">{{ venue.email_address }}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock content %}
|
||||||
|
|
||||||
|
{% block scripts %}
|
||||||
|
{% endblock scripts %}
|
@ -8,6 +8,8 @@ urlpatterns = [
|
|||||||
path('members/', views.teams, name='members'),
|
path('members/', views.teams, name='members'),
|
||||||
path('venues/', views.venues, name='venues'),
|
path('venues/', views.venues, name='venues'),
|
||||||
path('venues/get-waters/<int:venue_id>', views.get_venue_waters, name="get-venue-waters"),
|
path('venues/get-waters/<int:venue_id>', views.get_venue_waters, name="get-venue-waters"),
|
||||||
|
path('venues/<int:venue_id>', views.venue_details, name="venue-details"),
|
||||||
|
path("venues/api/<int:venue_id>", views.get_venue_details, name="venue-details"),
|
||||||
|
|
||||||
# path('bulk-peg/', views.bulk_create_pegs, name='bulk-peg'),
|
# path('bulk-peg/', views.bulk_create_pegs, name='bulk-peg'),
|
||||||
path('get-angler-data/', views.get_angler_page_data, name='get-angler-data'),
|
path('get-angler-data/', views.get_angler_page_data, name='get-angler-data'),
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
"""Views for the main app."""
|
"""Views for the main app."""
|
||||||
|
|
||||||
|
import json
|
||||||
from functools import reduce
|
from functools import reduce
|
||||||
|
|
||||||
from django.shortcuts import render, redirect
|
from django.shortcuts import render, redirect
|
||||||
@ -8,7 +9,9 @@ from django.db.models import Q, Case, When, Value, IntegerField, Min
|
|||||||
from django.db.utils import IntegrityError
|
from django.db.utils import IntegrityError
|
||||||
from django.views import View
|
from django.views import View
|
||||||
from django.views.decorators.http import require_GET, require_POST
|
from django.views.decorators.http import require_GET, require_POST
|
||||||
from django.http import HttpRequest
|
from django.http import HttpRequest, HttpResponseNotFound
|
||||||
|
from django.core import serializers
|
||||||
|
from django.forms.models import model_to_dict
|
||||||
|
|
||||||
from .models import Venue, Waters
|
from .models import Venue, Waters
|
||||||
# from .models import Team, Member, Section, SectionManager, ReusableAutoField, SectionValidator
|
# from .models import Team, Member, Section, SectionManager, ReusableAutoField, SectionValidator
|
||||||
@ -29,10 +32,32 @@ def teams(request):
|
|||||||
def venues(request):
|
def venues(request):
|
||||||
|
|
||||||
venues = Venue.objects.all()
|
venues = Venue.objects.all()
|
||||||
context = {"venues": venues}
|
context = {"venues": venues, "venue_types": Venue.VENUE_TYPES}
|
||||||
|
|
||||||
return render(request, 'venues.html', context)
|
return render(request, 'venues.html', context)
|
||||||
|
|
||||||
|
def venue_details(request, venue_id):
|
||||||
|
|
||||||
|
try:
|
||||||
|
venue = Venue.objects.get(id=venue_id)
|
||||||
|
except Venue.DoesNotExist:
|
||||||
|
return HttpResponseNotFound("<h1>404 - Venue not found</h1>")
|
||||||
|
|
||||||
|
context = {"venue": venue}
|
||||||
|
|
||||||
|
return render(request, 'venue_details.html', context)
|
||||||
|
|
||||||
|
def get_venue_details(request, venue_id: int):
|
||||||
|
|
||||||
|
try:
|
||||||
|
venue = Venue.objects.get(pk=venue_id)
|
||||||
|
except Venue.DoesNotExist:
|
||||||
|
return JsonResponse({"error": "Venue not found"}, status=404)
|
||||||
|
|
||||||
|
json_venue = model_to_dict(venue)
|
||||||
|
|
||||||
|
return JsonResponse({"data": json_venue})
|
||||||
|
|
||||||
def get_venue_waters(request, venue_id: int):
|
def get_venue_waters(request, venue_id: int):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user