diff --git a/LITReview/LITReview/settings.py b/LITReview/LITReview/settings.py index 7221e49..bbdddf1 100644 --- a/LITReview/LITReview/settings.py +++ b/LITReview/LITReview/settings.py @@ -133,9 +133,9 @@ LOGOUT_REDIRECT_URL = 'login' AUTH_USER_MODEL = 'authentication.User' -MEDIA_URL = 'media/' +MEDIA_URL = 'media/uploads/' -MEDIA_ROOT = BASE_DIR.joinpath(MEDIA_URL) +MEDIA_ROOT = BASE_DIR.joinpath('media/uploads/') diff --git a/LITReview/LITReview/urls.py b/LITReview/LITReview/urls.py index 6718a3c..ca1d974 100644 --- a/LITReview/LITReview/urls.py +++ b/LITReview/LITReview/urls.py @@ -40,6 +40,13 @@ urlpatterns = [ 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'), + path('ticket//', reviews.views.ticket, name='ticket-detail'), + path('ticket//update/', reviews.views.update_ticket, name='ticket-update'), + path('ticket//delete/', reviews.views.delete_ticket, name='ticket-delete'), + path('review//', reviews.views.review, name='review-detail'), + path('review//update/', reviews.views.update_review, name='review-update'), + path('review//delete/', reviews.views.delete_review, name='review-delete'), + path('confirm/', reviews.views.delete_confirm, name='delete-confirm'), ] if settings.DEBUG: diff --git a/LITReview/media/uploads/crocblanc.jpg b/LITReview/media/uploads/crocblanc.jpg new file mode 100644 index 0000000..31ad68b Binary files /dev/null and b/LITReview/media/uploads/crocblanc.jpg differ diff --git a/LITReview/media/uploads/crusoe.jpg b/LITReview/media/uploads/crusoe.jpg new file mode 100644 index 0000000..e2ceb47 Binary files /dev/null and b/LITReview/media/uploads/crusoe.jpg differ diff --git a/LITReview/reviews/forms.py b/LITReview/reviews/forms.py index 1bd33ef..5561049 100644 --- a/LITReview/reviews/forms.py +++ b/LITReview/reviews/forms.py @@ -6,3 +6,12 @@ class TicketForm(forms.ModelForm): class Meta: model = models.Ticket fields = ['title', 'body', 'image'] + + +class ReviewForm(forms.ModelForm): + CHOICES = [0, 1, 2, 3, 4, 5] + rating = forms.ChoiceField(widget=forms.RadioSelect, choices=CHOICES) + class Meta: + model = models.Review + fields = ['headline', 'body'] + diff --git a/LITReview/reviews/models.py b/LITReview/reviews/models.py index 86d1d1b..f36e8c0 100644 --- a/LITReview/reviews/models.py +++ b/LITReview/reviews/models.py @@ -20,8 +20,8 @@ class Review(models.Model): rating = models.PositiveSmallIntegerField( # validates that rating must be between 0 and 5 validators=[MinValueValidator(0), MaxValueValidator(5)]) - headline = models.CharField(max_length=128) - body = models.CharField(max_length=8192, blank=True) + headline = models.CharField("titre", max_length=128) + body = models.CharField("description", max_length=8192, blank=True) user = models.ForeignKey( to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE) time_created = models.DateTimeField(auto_now_add=True) @@ -30,10 +30,10 @@ 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) - + followed_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', ) + unique_together = ('user', 'followed_user', ) diff --git a/LITReview/reviews/templates/reviews/create_ticket.html b/LITReview/reviews/templates/reviews/create_ticket.html deleted file mode 100644 index db989ad..0000000 --- a/LITReview/reviews/templates/reviews/create_ticket.html +++ /dev/null @@ -1,29 +0,0 @@ -{% extends 'base.html' %} - -{% block content %} - -
-
-
-

Créer un ticket

-
-
-
-
-
- {% csrf_token %} - -
{{ ticket_form.title }}
- -
{{ ticket_form.body }}
- -
{{ ticket_form.image }}
-
- -
-
-
-
-
- -{% endblock %} diff --git a/LITReview/reviews/templates/reviews/delete_confirm.html b/LITReview/reviews/templates/reviews/delete_confirm.html new file mode 100644 index 0000000..b72601f --- /dev/null +++ b/LITReview/reviews/templates/reviews/delete_confirm.html @@ -0,0 +1,9 @@ +{% extends 'base.html' %} + +{% block content %} + +
+

Suppression effectuée

+
+ +{% endblock %} diff --git a/LITReview/reviews/templates/reviews/home.html b/LITReview/reviews/templates/reviews/home.html index a00a0a5..60e63d1 100644 --- a/LITReview/reviews/templates/reviews/home.html +++ b/LITReview/reviews/templates/reviews/home.html @@ -3,11 +3,11 @@ {% block content %}
-
+

Bienvenue {{ request.user }}

- +
+ {% for ticket in tickets %} + {% include 'reviews/ticket_detail.html' %} + {% endfor %} +
+
{% endblock %} diff --git a/LITReview/reviews/templates/reviews/create_review.html b/LITReview/reviews/templates/reviews/review_create.html similarity index 100% rename from LITReview/reviews/templates/reviews/create_review.html rename to LITReview/reviews/templates/reviews/review_create.html diff --git a/LITReview/reviews/templates/reviews/review_form.html b/LITReview/reviews/templates/reviews/review_form.html new file mode 100644 index 0000000..db76c64 --- /dev/null +++ b/LITReview/reviews/templates/reviews/review_form.html @@ -0,0 +1,13 @@ +
+ {% csrf_token %} + +
{{ review_form.headline }}
+ +
{{ review_form.rating }}
+ +
{{ review_form.body }}
+
+ +
+
+ diff --git a/LITReview/reviews/templates/reviews/ticket.html b/LITReview/reviews/templates/reviews/ticket.html new file mode 100644 index 0000000..79d692d --- /dev/null +++ b/LITReview/reviews/templates/reviews/ticket.html @@ -0,0 +1,7 @@ +{% extends 'base.html' %} + +{% block content %} + +{% include 'reviews/ticket_detail.html' %} + +{% endblock %} diff --git a/LITReview/reviews/templates/reviews/ticket_create.html b/LITReview/reviews/templates/reviews/ticket_create.html new file mode 100644 index 0000000..72d5945 --- /dev/null +++ b/LITReview/reviews/templates/reviews/ticket_create.html @@ -0,0 +1,16 @@ +{% extends 'base.html' %} + +{% block content %} + +
+
+
+

Créer un ticket

+
+
+
+ {% include 'reviews/ticket_form.html' %} +
+
+ +{% endblock %} diff --git a/LITReview/reviews/templates/reviews/ticket_delete.html b/LITReview/reviews/templates/reviews/ticket_delete.html new file mode 100644 index 0000000..0ee34d5 --- /dev/null +++ b/LITReview/reviews/templates/reviews/ticket_delete.html @@ -0,0 +1,12 @@ +{% extends 'base.html' %} + +{% block content %} +
+
+ {% csrf_token %} +

Êtes vous sûr de vouloir supprimer {{ ticket.title }} ?

+ +
+{% endblock %} + + diff --git a/LITReview/reviews/templates/reviews/ticket_detail.html b/LITReview/reviews/templates/reviews/ticket_detail.html new file mode 100644 index 0000000..85bd98f --- /dev/null +++ b/LITReview/reviews/templates/reviews/ticket_detail.html @@ -0,0 +1,28 @@ +
+
+ {% if request.user == ticket.user %} + vous avez demandé une critique + {% else %} + {{ ticket.user }} a demandé une critique + {% endif %} +
+
+ {{ ticket.time_created }} +
+

{{ ticket.title }}

+

{{ ticket.body }}

+
+ Couverture de {{ ticket.title }} +
+
+ {% if request.user == ticket.user %} +
+ Modifier +
+
+ Supprimer +
+ {% endif %} +
+ +
diff --git a/LITReview/reviews/templates/reviews/ticket_form.html b/LITReview/reviews/templates/reviews/ticket_form.html new file mode 100644 index 0000000..838dee4 --- /dev/null +++ b/LITReview/reviews/templates/reviews/ticket_form.html @@ -0,0 +1,13 @@ +
+ {% csrf_token %} + +
{{ ticket_form.title }}
+ +
{{ ticket_form.body }}
+ +
{{ ticket_form.image }}
+
+ +
+
+ diff --git a/LITReview/reviews/templates/reviews/ticket_update.html b/LITReview/reviews/templates/reviews/ticket_update.html new file mode 100644 index 0000000..e9294c9 --- /dev/null +++ b/LITReview/reviews/templates/reviews/ticket_update.html @@ -0,0 +1,16 @@ +{% extends 'base.html' %} + +{% block content %} + +
+
+

Modifier la demande {{ ticket.title }}

+
+
+ {% include 'reviews/ticket_form.html' %} +
+
+ +{% endblock %} + + diff --git a/LITReview/reviews/views.py b/LITReview/reviews/views.py index 2080dfc..87c9ea9 100644 --- a/LITReview/reviews/views.py +++ b/LITReview/reviews/views.py @@ -1,21 +1,35 @@ from django.shortcuts import render, redirect +from django.contrib.auth.decorators import login_required from reviews.models import Ticket from reviews.forms import TicketForm +@login_required def home(request): - return render(request, 'reviews/home.html') + tickets = Ticket.objects.all() + return render(request, 'reviews/home.html', {'tickets': tickets}) +@login_required def flux(request): return render(request, 'reviews/flux.html') +@login_required def posts(request): return render(request, 'reviews/posts.html') +@login_required def subscribed(request): return render(request, 'reviews/subscribed.html') +@login_required +def ticket(request, ticket_id): + ticket = Ticket.objects.get(id=ticket_id) + return render(request, + 'reviews/ticket.html', + {'ticket': ticket}) +@login_required def create_ticket(request): + tickets = Ticket.objects.all() ticket_form = TicketForm() if request.method == 'POST': ticket_form = TicketForm(request.POST, request.FILES) @@ -23,17 +37,55 @@ def create_ticket(request): ticket = ticket_form.save(commit=False) ticket.user = request.user ticket.save() + return redirect('home') + return render(request, + 'reviews/ticket_create.html', + context = {'ticket_form': ticket_form, 'tickets': tickets}) + +@login_required +def update_ticket(request, ticket_id): + ticket = Ticket.objects.get(id=ticket_id) + if request.method == 'POST': + ticket_form = TicketForm(request.POST, instance=ticket) + if ticket_form.is_valid(): + ticket = ticket_form.save() + return redirect('home') + else: + ticket_form = TicketForm(instance=ticket) return render(request, - 'reviews/create_ticket.html', - context = {'ticket_form': ticket_form}) + 'reviews/ticket_update.html', + {'ticket_form': ticket_form}) + +@login_required +def delete_ticket(request, ticket_id): + ticket = Ticket.objects.get(id=ticket_id) + if request.method == 'POST': + ticket.delete() + return redirect('home') + + return render(request, + 'reviews/ticket_delete.html', + {'ticket': ticket}) + +def review(request): + pass def create_review(request): pass +def update_review(request): + pass + +def delete_review(request): + pass + def follow_user(request): pass def unfollow_user(request): pass +def delete_confirm(request, truc_id): + render (request, + 'reviews/delete_confirm.html') diff --git a/LITReview/templates/base.html b/LITReview/templates/base.html index e02fd31..80668a3 100644 --- a/LITReview/templates/base.html +++ b/LITReview/templates/base.html @@ -1,42 +1,27 @@ + - - - - LITReview - - - - -
-