trying to make views/templates for create ticket and review

This commit is contained in:
yann 2025-04-24 12:03:13 +02:00
parent 2e51350738
commit b5e7762ef6
10 changed files with 137 additions and 25 deletions

View File

@ -38,6 +38,8 @@ urlpatterns = [
path('flux/', reviews.views.flux, name='flux'),
path('posts/', reviews.views.posts, name='posts'),
path('subscribed/', reviews.views.subscribed, name='subscribed'),
path('ticket/add/', reviews.views.create_ticket, name='ticket-add'),
path('review/add/', reviews.views.create_review, name='review-add'),
]
if settings.DEBUG:

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

View File

@ -1,3 +1,7 @@
from django.contrib import admin
from reviews.models import Ticket, Review, UserFollows
# Register your models here.
admin.site.register(Ticket)
admin.site.register(Review)
admin.site.register(UserFollows)

View File

@ -0,0 +1,8 @@
from django import forms
from . import models
class TicketForm(forms.ModelForm):
class Meta:
model = models.Ticket
fields = ['title', 'body', 'image']

View File

@ -5,9 +5,9 @@ from django.db import models
class Ticket(models.Model):
# Your Ticket model definition goes here
title = models.CharField(max_length=100)
title = models.CharField("Titre", max_length=100)
topic = models.CharField(max_length=100)
body = models.CharField(max_length=8192)
body = models.CharField("Description", max_length=8192)
user = models.ForeignKey(
to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
image = models.ImageField(upload_to="uploads/")
@ -29,10 +29,11 @@ class Review(models.Model):
class UserFollows(models.Model):
# Your UserFollows model definition goes here
user = models.ForeignKey(to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
class Meta:
# ensures we don't get multiple UserFollows instances
# for unique user-user_followed pairs
pass
#unique_together = ('user', 'followed_user', )
pass

View File

@ -0,0 +1,23 @@
{% extends 'base.html' %}
{% block content %}
<div class="container">
<div class="row">
<div class="col d-flex justify-content-center">
<h2>Créer une critique</h2>
</div>
</div>
<div class="row border border-3 border-secondary-subtle">
<h3> Livre/Article </h3>
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
<label for="title">Titre</label>
<div class="d-flex flex-grow-1 mb-4"> </div>
</div>
<div class="row border border-3 border-secondary-subtle">
<h3>Critique</h3>
</div>
</div>
{% endblock %}

View File

@ -0,0 +1,29 @@
{% extends 'base.html' %}
{% block content %}
<div class="container">
<div class="row d-flex justify-content-center">
<div class="col-md-auto form-group mt-5">
<h2> Créer un ticket </h2>
</div>
</div>
<div class="row d-flex justify-content-center mt-5">
<div class="col-md-auto form-group justify-content-center">
<form method='post' enctype='multipart/form-data'>
{% csrf_token %}
<label for='title'> Titre: </label>
<div class="d-flex justify-content-center mb-4">{{ ticket_form.title }}</div>
<label for='body'>Description: </label>
<div class="d-flex justify-content-center mb-4">{{ ticket_form.body }}</div>
<label for='image'>Image: </label>
<div class="d-flex justify-content-center mb-4">{{ ticket_form.image }}</div>
<div class="d-flex justify-content-end">
<button type='submit' class='btn btn-primary ml-auto'> Envoyer</button>
</div>
</form>
</div>
</div>
</div>
{% endblock %}

View File

@ -1,17 +1,20 @@
{% extends 'base.html' %}
{% block nav %}
<nav class="navbar navbar-light ml-auto">
<a href="{% url 'flux' %}">Flux</a>
<a href="{% url 'posts' %}">Posts</a>
<a href="{% url 'subscribed' %}">Abonnements</a>
<form class="form-inline" method="post" action="{% url 'logout' %}">
{% csrf_token %}
<button type="submit" class="btn btn-light">Se déconnecter</button>
</form>
</nav>
{% endblock %}
{% block content %}
<h2> Bienvenue {{ user.name }}</h2>
<div class="container">
<div class="row">
<div class="d-flex justify-content-center mt-5">
<h2> Bienvenue {{ request.user }}</h2>
</div>
</div>
<div class="row d-flex align-items-center">
<div class="col-6">
<a href="{% url 'ticket-add' %}" type="button" class="btn btn-primary">Demander une critique</button>
</div>
<div class="col-6">
<a href="{% url 'review-add' %}" type="button" class="btn btn-primary">Créer une critique</button>
</div>
</div>
</div>
{% endblock %}

View File

@ -1,4 +1,6 @@
from django.shortcuts import render
from django.shortcuts import render, redirect
from reviews.models import Ticket
from reviews.forms import TicketForm
def home(request):
return render(request, 'reviews/home.html')
@ -13,3 +15,25 @@ def subscribed(request):
return render(request, 'reviews/subscribed.html')
def create_ticket(request):
ticket_form = TicketForm()
if request.method == 'POST':
ticket_form = TicketForm(request.POST, request.FILES)
if ticket_form.is_valid():
ticket = ticket_form.save(commit=False)
ticket.user = request.user
ticket.save()
return render(request,
'reviews/create_ticket.html',
context = {'ticket_form': ticket_form})
def create_review(request):
pass
def follow_user(request):
pass
def unfollow_user(request):
pass

View File

@ -1,4 +1,3 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
@ -10,12 +9,31 @@
</head>
<body>
<header>
<div class="container-fluid border border-3 border-secondary-subtle">
<div class="row text-center">
<h1> LITReview </h1>
<nav class="navbar navbar-expand-lg">
<div class="container-fluid border border-3 border-secondary-subtle">
<div class="col d-flex justify-content-center">
<h1> LITReview </h1>
</div>
{% if user.is_authenticated %}
<ul class="navbar-nav">
<li class="nav-item">
<a href="{% url 'home' %}" class="nav-link {% if navbar == 'home' %}active{% endif %}">Flux</a>
</li>
<li class="nav-item">
<a href="{% url 'posts' %}" class="nav-link {% if navbar == 'posts' %}active{% endif %}">Posts</a>
</li>
<li class="nav-item">
<a href="{% url 'subscribed' %}" class="nav-link {% if navbar == 'subscribed' %}active{% endif %}">Abonnements</a>
</li>
<form class="form-inline" method="post" action="{% url 'logout' %}">
{% csrf_token %}
<button type="submit" class="btn btn-light">Se déconnecter</button>
</form>
</ul>
{% endif %}
</div>
</div>
{% block nav %}{% endblock %}
</nav>
</header>
{% block content %}{% endblock %}