View Venue & Details API

Added a page for viewing venue details.

Added an api function for retrieving venue details.
This commit is contained in:
Corban-Lee 2023-10-24 22:27:11 +01:00
parent ea1bdda8c2
commit a112ba38e9
3 changed files with 74 additions and 2 deletions

View 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 %}

View File

@ -8,6 +8,8 @@ urlpatterns = [
path('members/', views.teams, name='members'),
path('venues/', views.venues, name='venues'),
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('get-angler-data/', views.get_angler_page_data, name='get-angler-data'),

View File

@ -1,5 +1,6 @@
"""Views for the main app."""
import json
from functools import reduce
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.views import View
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 Team, Member, Section, SectionManager, ReusableAutoField, SectionValidator
@ -29,10 +32,32 @@ def teams(request):
def venues(request):
venues = Venue.objects.all()
context = {"venues": venues}
context = {"venues": venues, "venue_types": Venue.VENUE_TYPES}
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):
try: