First version

This commit is contained in:
2024-12-16 16:35:12 +01:00
commit 69bc5698bd
52 changed files with 5598 additions and 0 deletions

0
backend/app/__init__.py Normal file
View File

6
backend/app/admin.py Normal file
View File

@ -0,0 +1,6 @@
from django.contrib import admin
from app.models import Order, Waiter, Meal
# Register your models here.
admin.site.register([Meal, Order, Waiter])

6
backend/app/apps.py Normal file
View File

@ -0,0 +1,6 @@
from django.apps import AppConfig
class AppConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'app'

3
backend/app/consumers.py Normal file
View File

@ -0,0 +1,3 @@
from channels.db import database_sync_to_async
from channels.generic.websocket import AsyncJsonWebsocketConsumer
from django.urls import reverse

View File

@ -0,0 +1,33 @@
# Generated by Django 5.1.4 on 2024-12-12 14:12
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Waiter',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=120, verbose_name='Imię i nazwisko')),
],
),
migrations.CreateModel(
name='Order',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created_on', models.DateTimeField(auto_now_add=True, verbose_name='Utworzono')),
('updated_on', models.DateTimeField(auto_now=True, verbose_name='Zaktualizowano')),
('data', models.JSONField(default=dict, verbose_name='Dane zamówienia')),
('status', models.PositiveSmallIntegerField(choices=[(1, 'Zamówienie złożone'), (2, 'Zamówienie w trakcie przygotowywania'), (3, 'Zamówienie gotowe'), (4, 'Zamówienie skończone')], default=1, verbose_name='Status zamówienia')),
('waiter', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='orders', to='app.waiter', verbose_name='Kelner')),
],
),
]

View File

@ -0,0 +1,20 @@
# Generated by Django 5.1.4 on 2024-12-16 13:56
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('app', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='Meal',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.TextField(verbose_name='Danie')),
],
),
]

View File

54
backend/app/models.py Normal file
View File

@ -0,0 +1,54 @@
from django.db import models
from django.utils.translation import gettext_lazy as _
# Create your models here.
class Waiter(models.Model):
name = models.CharField(_('Imię i nazwisko'), max_length=120)
def __str__(self):
return self.name
class Meta:
verbose_name = _("Kelner")
verbose_name_plural = _("Kelnerzy")
class Meal(models.Model):
name = models.TextField(_('Danie'))
def __str__(self):
return self.name
class Meta:
verbose_name = _("Danie")
verbose_name_plural = _("Dania")
class Order(models.Model):
created_on = models.DateTimeField(_('Utworzono'), auto_now_add=True)
updated_on = models.DateTimeField(_('Zaktualizowano'), auto_now=True)
waiter = models.ForeignKey(
Waiter, models.SET_NULL, related_name='orders', verbose_name=_('Kelner'), null=True
)
data = models.JSONField(_('Dane zamówienia'), default=dict)
class StatusChoices(models.IntegerChoices):
ORDERED = (1, _('Zamówienie złożone'))
IN_PROGRESS = (2, ('Zamówienie w trakcie przygotowywania'))
READY = (3, _('Zamówienie gotowe'))
FINALIZED = (4, _('Zamówienie skończone'))
status = models.PositiveSmallIntegerField(
_('Status zamówienia'),
choices=StatusChoices.choices,
default=StatusChoices.ORDERED,
)
def __str__(self):
return self.id
class Meta:
verbose_name = _("Zamówienie")
verbose_name_plural = _("Zamówienia")

7
backend/app/routing.py Normal file
View File

@ -0,0 +1,7 @@
# app/routing.py
from django.urls import re_path
from . import consumers
websocket_urlpatterns = []

3
backend/app/tests.py Normal file
View File

@ -0,0 +1,3 @@
from django.test import TestCase
# Create your tests here.

5
backend/app/views.py Normal file
View File

@ -0,0 +1,5 @@
from django.shortcuts import render
# Create your views here.