mirror of
https://framagit.org/la-chariotte/la-chariotte.git
synced 2025-05-02 20:01:51 +02:00
camelcase for GroupedOrder
This commit is contained in:
parent
743940df3b
commit
6c3ed24b74
7 changed files with 45 additions and 28 deletions
|
@ -1,8 +1,8 @@
|
|||
from django.contrib import admin
|
||||
|
||||
from .models import Grouped_order, Item, Order, OrderedItem
|
||||
from .models import GroupedOrder, Item, Order, OrderedItem
|
||||
|
||||
admin.site.register(Grouped_order)
|
||||
admin.site.register(GroupedOrder)
|
||||
admin.site.register(Order)
|
||||
admin.site.register(Item)
|
||||
admin.site.register(OrderedItem)
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
# Generated by Django 4.2 on 2023-04-11 14:22
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
("order", "0009_rename_date_grouped_order_delivery_date"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RenameModel(
|
||||
old_name="Grouped_order",
|
||||
new_name="GroupedOrder",
|
||||
),
|
||||
]
|
|
@ -2,7 +2,7 @@ from django.db import models
|
|||
from django.utils import timezone
|
||||
|
||||
|
||||
class Grouped_order(models.Model):
|
||||
class GroupedOrder(models.Model):
|
||||
name = models.CharField(max_length=100, null=True) # optionnal
|
||||
orga = models.CharField(max_length=100) # a changer, utiliser ForeignKey de user
|
||||
delivery_date = models.DateField("Date de livraison")
|
||||
|
@ -22,7 +22,7 @@ class Grouped_order(models.Model):
|
|||
|
||||
class Order(models.Model):
|
||||
grouped_order = models.ForeignKey(
|
||||
Grouped_order, on_delete=models.CASCADE, related_name="order_set"
|
||||
GroupedOrder, on_delete=models.CASCADE, related_name="order_set"
|
||||
)
|
||||
author = models.CharField(
|
||||
max_length=100, verbose_name="Personne qui passe la commande"
|
||||
|
@ -35,7 +35,7 @@ class Order(models.Model):
|
|||
class Item(models.Model):
|
||||
name = models.CharField(max_length=100)
|
||||
grouped_order = models.ForeignKey(
|
||||
Grouped_order, on_delete=models.CASCADE
|
||||
GroupedOrder, on_delete=models.CASCADE
|
||||
) # à transformer en manytomany quand il y aura un catalogue
|
||||
ordered_nb = models.IntegerField(default=0)
|
||||
|
||||
|
|
|
@ -21,16 +21,16 @@
|
|||
{% endfor %}
|
||||
</ul>
|
||||
<form action="{% url 'order:order' grouped_order.id %}" method="post">
|
||||
{% csrf_token %}
|
||||
<fieldset>
|
||||
<legend><h1>{{ grouped_order }}</h1></legend>
|
||||
{% if error_message %}<p><strong>{{ error_message }}</strong></p>{% endif %}
|
||||
{% for item in grouped_order.item_set.all %}
|
||||
<input type="radio" name="item" id="item{{ forloop.counter }}" value="{{ item.id }}">
|
||||
<label for="item{{ forloop.counter }}">{{ item.name }}</label><br>
|
||||
{% endfor %}
|
||||
</fieldset>
|
||||
<input type="submit" value="Order">
|
||||
</form>
|
||||
{% csrf_token %}
|
||||
<fieldset>
|
||||
<legend><h1>{{ grouped_order }}</h1></legend>
|
||||
{% if error_message %}<p><strong>{{ error_message }}</strong></p>{% endif %}
|
||||
{% for item in grouped_order.item_set.all %}
|
||||
<input type="radio" name="item" id="item{{ forloop.counter }}" value="{{ item.id }}">
|
||||
<label for="item{{ forloop.counter }}">{{ item.name }}</label><br>
|
||||
{% endfor %}
|
||||
</fieldset>
|
||||
<input type="submit" value="Order">
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -2,7 +2,7 @@ import datetime
|
|||
|
||||
from django.utils import timezone
|
||||
|
||||
from la_chariotte.order.models import Grouped_order
|
||||
from la_chariotte.order.models import GroupedOrder
|
||||
|
||||
|
||||
class TestGroupedOrdersModel:
|
||||
|
@ -13,7 +13,7 @@ class TestGroupedOrdersModel:
|
|||
is_ongoing() returns True if the deadline is not crossed
|
||||
"""
|
||||
deadline = timezone.now() + datetime.timedelta(days=10)
|
||||
ongoing_gr_order = Grouped_order(deadline=deadline)
|
||||
ongoing_gr_order = GroupedOrder(deadline=deadline)
|
||||
assert ongoing_gr_order.is_ongoing()
|
||||
|
||||
def test_is_ongoing_with_old_grouped_order(self):
|
||||
|
@ -21,5 +21,5 @@ class TestGroupedOrdersModel:
|
|||
is_ongoing() returns False if the deadline is crossed
|
||||
"""
|
||||
deadline = timezone.now() - datetime.timedelta(hours=1)
|
||||
ongoing_gr_order = Grouped_order(deadline=deadline)
|
||||
ongoing_gr_order = GroupedOrder(deadline=deadline)
|
||||
assert not ongoing_gr_order.is_ongoing()
|
||||
|
|
|
@ -4,7 +4,7 @@ import pytest
|
|||
from django.urls import reverse
|
||||
from django.utils import timezone
|
||||
|
||||
from la_chariotte.order.models import Grouped_order, Item, Order
|
||||
from la_chariotte.order.models import GroupedOrder, Item, Order
|
||||
|
||||
pytestmark = pytest.mark.django_db
|
||||
|
||||
|
@ -15,7 +15,7 @@ def create_grouped_order(days_before_delivery_date, days_before_deadline, name):
|
|||
"""
|
||||
date = timezone.now().date() + datetime.timedelta(days=days_before_delivery_date)
|
||||
deadline = timezone.now() + datetime.timedelta(days=days_before_deadline)
|
||||
return Grouped_order.objects.create(
|
||||
return GroupedOrder.objects.create(
|
||||
name=name, orga="test orga", delivery_date=date, deadline=deadline
|
||||
)
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ from django.urls import reverse
|
|||
from django.utils import timezone
|
||||
from django.views import generic
|
||||
|
||||
from .models import Grouped_order, Item, Order, OrderedItem
|
||||
from .models import GroupedOrder, Item, Order, OrderedItem
|
||||
|
||||
|
||||
class IndexView(generic.ListView):
|
||||
|
@ -15,19 +15,19 @@ class IndexView(generic.ListView):
|
|||
|
||||
def get_queryset(self):
|
||||
"""Return the 5 most recent old grouped orders"""
|
||||
old_grouped_orders = Grouped_order.objects.filter(
|
||||
old_grouped_orders = GroupedOrder.objects.filter(
|
||||
delivery_date__lt=timezone.now().date()
|
||||
).order_by("-delivery_date")[
|
||||
:5
|
||||
] # delivery date < today (delivered)
|
||||
"""Return all grouped orders, for which we cannot order anymore but the delivery date is still to come"""
|
||||
orders_over_grouped_orders = (
|
||||
Grouped_order.objects.filter(delivery_date__gte=timezone.now().date())
|
||||
GroupedOrder.objects.filter(delivery_date__gte=timezone.now().date())
|
||||
.filter(deadline__lt=timezone.now())
|
||||
.order_by("-delivery_date")
|
||||
) # delivery date >= today (not delivered) and deadline < today (we cannot order)
|
||||
"""Return all incoming grouped orders"""
|
||||
incoming_grouped_orders = Grouped_order.objects.filter(
|
||||
incoming_grouped_orders = GroupedOrder.objects.filter(
|
||||
deadline__gte=timezone.now()
|
||||
).order_by(
|
||||
"deadline"
|
||||
|
@ -42,21 +42,22 @@ class IndexView(generic.ListView):
|
|||
class GroupedOrderDetailView(generic.DetailView):
|
||||
"""Vue de détail d'une commande groupée - possibilité de commander si elle est en cours"""
|
||||
|
||||
model = Grouped_order
|
||||
model = GroupedOrder
|
||||
template_name = "order/grouped_order_detail.html"
|
||||
context_object_name = "grouped_order"
|
||||
|
||||
|
||||
class GroupedOrderOrgaView(generic.DetailView):
|
||||
"""Vue de supervision d'une commande groupée"""
|
||||
|
||||
model = Grouped_order
|
||||
model = GroupedOrder
|
||||
template_name = "order/grouped_order_orga.html"
|
||||
|
||||
|
||||
def order(
|
||||
request, grouped_order_id
|
||||
): # crée une commande (order) pour cette commande groupée, avec l'item selectionné dedans
|
||||
grouped_order = get_object_or_404(Grouped_order, pk=grouped_order_id)
|
||||
grouped_order = get_object_or_404(GroupedOrder, pk=grouped_order_id)
|
||||
try:
|
||||
selected_item = grouped_order.item_set.get(pk=request.POST["item"])
|
||||
except (KeyError, Item.DoesNotExist):
|
||||
|
|
Loading…
Reference in a new issue