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