SpitiGlykou
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
from django.contrib import admin
|
||||
from .models import Order, Product, OrderProduct,Customer, Store
|
||||
|
||||
|
||||
@admin.register(Store)
|
||||
class StoreAdmin(admin.ModelAdmin):
|
||||
list_display = ('name', 'address', 'telephone')
|
||||
|
||||
|
||||
@admin.register(OrderProduct)
|
||||
class OrderProductAdmin(admin.ModelAdmin):
|
||||
def get_order_id(self, obj):
|
||||
return obj.order.id
|
||||
|
||||
def get_product_name(self, obj):
|
||||
return obj.product.name
|
||||
list_display = ('get_order_id', 'get_product_name', 'info')
|
||||
|
||||
|
||||
@admin.register(Product)
|
||||
class ProductAdmin(admin.ModelAdmin):
|
||||
list_display = ('name',)
|
||||
|
||||
|
||||
@admin.register(Customer)
|
||||
class CustomerAdmin(admin.ModelAdmin):
|
||||
list_display = ('name', 'telephone', 'address')
|
||||
|
||||
|
||||
class OrderInlines(admin.TabularInline):
|
||||
model = OrderProduct
|
||||
fk_name = "order"
|
||||
extra = 1
|
||||
|
||||
|
||||
@admin.register(Order)
|
||||
class OrderAdmin(admin.ModelAdmin):
|
||||
def get_products(self, obj):
|
||||
#return "\n".join(['{}:{} | '.format(p.name, p.amount) for p in obj.order_products.all()])
|
||||
return "\n".join([str(p) for p in obj.order_products.all()])
|
||||
|
||||
def get_customer_name(self, obj):
|
||||
return obj.customer.name
|
||||
|
||||
def get_customer_telephone(self, obj):
|
||||
return obj.customer.telephone
|
||||
|
||||
get_customer_name.admin_order_field = 'customer_name' # Allows column order sorting
|
||||
get_customer_name.short_description = 'Customer Name' # Renames column head
|
||||
|
||||
get_customer_telephone.admin_order_field = 'customer_telephone' # Allows column order sorting
|
||||
get_customer_telephone.short_description = 'Customer Telephone' # Renames column head
|
||||
|
||||
list_display = ('id', 'get_customer_name', 'get_customer_telephone', 'order_date', 'delivery_date', 'store', 'get_products')
|
||||
inlines = (OrderInlines,)
|
||||
@@ -0,0 +1,5 @@
|
||||
from django.apps import AppConfig
|
||||
|
||||
|
||||
class OrdersAppConfig(AppConfig):
|
||||
name = 'orders_app'
|
||||
@@ -0,0 +1,21 @@
|
||||
from crispy_forms.layout import LayoutObject, TEMPLATE_PACK
|
||||
from django.shortcuts import render
|
||||
from django.template.loader import render_to_string
|
||||
|
||||
|
||||
###### Thanks!
|
||||
###### https://stackoverflow.com/questions/15157262/django-crispy-forms-nesting-a-formset-within-a-form/22053952#22053952
|
||||
|
||||
class Formset(LayoutObject):
|
||||
template = "orders/formset.html"
|
||||
|
||||
def __init__(self, formset_name_in_context, template=None):
|
||||
self.formset_name_in_context = formset_name_in_context
|
||||
self.fields = []
|
||||
if template:
|
||||
self.template = template
|
||||
|
||||
|
||||
def render(self, form, form_style, context, template_pack=TEMPLATE_PACK):
|
||||
formset = context[self.formset_name_in_context]
|
||||
return render_to_string(self.template, {'formset': formset, 'current_view': context['request'].path})
|
||||
@@ -0,0 +1,187 @@
|
||||
from crispy_forms.helper import FormHelper
|
||||
from crispy_forms.layout import Layout, Field, Fieldset, Div, HTML, ButtonHolder, Submit
|
||||
from django import forms
|
||||
from django.urls import reverse_lazy
|
||||
from django.forms.models import inlineformset_factory
|
||||
from django_addanother.widgets import AddAnotherWidgetWrapper
|
||||
|
||||
from orders_app.custom_layout_object import Formset
|
||||
from orders_app.models import Order, OrderProduct, Customer, Product, Store
|
||||
|
||||
|
||||
class CustomerForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = Customer
|
||||
fields = ['name', 'address', 'telephone', 'email', 'social_media']
|
||||
|
||||
def __init__(self, *arg, **kwarg):
|
||||
super(CustomerForm, self).__init__(*arg, **kwarg)
|
||||
self.helper = FormHelper()
|
||||
self.fields['name'].label = "Ονοματεπώνυμο"
|
||||
self.fields['address'].label = "Διεύθυνση"
|
||||
self.fields['telephone'].label = "Τηλέφωνο"
|
||||
self.fields['email'].label = "email"
|
||||
self.fields['social_media'].label = "Facebook/Instagram κτλ."
|
||||
self.helper.layout = Layout(
|
||||
Div(
|
||||
Field('name'),
|
||||
Field('address'),
|
||||
Field('telephone'),
|
||||
Field('email'),
|
||||
Field('social_media'),
|
||||
HTML("<br>"),
|
||||
ButtonHolder(Submit('submit', 'Αποθήκευση')),
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
class ProductForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = Product
|
||||
fields = ['name']
|
||||
|
||||
def __init__(self, *arg, **kwarg):
|
||||
super(ProductForm, self).__init__(*arg, **kwarg)
|
||||
self.helper = FormHelper()
|
||||
self.fields['name'].label = "Τύπος Προϊόντος"
|
||||
self.helper.layout = Layout(
|
||||
Div(
|
||||
Field('name'),
|
||||
HTML("<br>"),
|
||||
ButtonHolder(Submit('submit', 'Αποθήκευση')),
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
class StoreForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = Store
|
||||
fields = ['name', 'address', 'telephone']
|
||||
|
||||
def __init__(self, *arg, **kwarg):
|
||||
super(StoreForm, self).__init__(*arg, **kwarg)
|
||||
self.helper = FormHelper()
|
||||
self.fields['name'].label = "Όνομα"
|
||||
self.fields['address'].label = "Διεύθυνση"
|
||||
self.fields['telephone'].label = "Τηλέφωνο"
|
||||
self.helper.layout = Layout(
|
||||
Div(
|
||||
Field('name'),
|
||||
Field('address'),
|
||||
Field('telephone'),
|
||||
HTML("<br>"),
|
||||
ButtonHolder(Submit('submit', 'Αποθήκευση')),
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
class OrderLine(forms.ModelForm):
|
||||
class Meta:
|
||||
model = OrderProduct
|
||||
fields = ['id', 'order', 'product', 'amount', 'cake_type', 'cake_type_num', 'cake_color', 'cake_color_other', 'fyt_color', 'fyt_color_other', 'cake_flavor', 'cake_img', 'cream_cake_3d', 'cream_cake_height', 'cream_cake_img', 'engagement_cake_type', 'engagement_cake_base', 'engagement_cake_pcs', 'engagement_cake_pcs_other', 'engagement_cake_glaze', 'cup_flavor', 'cup_color', 'cup_color_other', 'cup_type', 'candy_bar_type', 'candy_bar_decor', 'candy_bar_decor_other', 'candy_bar_wrap', 'info']
|
||||
widgets = {
|
||||
'product': AddAnotherWidgetWrapper(
|
||||
forms.Select(attrs={'onchange': 'showFields(this);'}),
|
||||
reverse_lazy('orders_app:product_create'),
|
||||
),
|
||||
'cake_color': forms.Select(attrs={'onchange': 'showOtherFields(this);'}),
|
||||
'fyt_color': forms.Select(attrs={'onchange': 'showOtherFields(this);'}),
|
||||
'engagement_cake_pcs': forms.Select(attrs={'onchange': 'showOtherFields(this);'}),
|
||||
'cup_color': forms.Select(attrs={'onchange': 'showOtherFields(this);'}),
|
||||
'candy_bar_decor': forms.Select(attrs={'onchange': 'showOtherFields(this);'}),
|
||||
'info': forms.Textarea(attrs={'rows': 2, 'cols': 30}),
|
||||
}
|
||||
|
||||
def __init__(self, *arg, **kwarg):
|
||||
super(OrderLine, self).__init__(*arg, **kwarg)
|
||||
self.empty_permitted = False
|
||||
self.fields['product'].label = "Προϊόν"
|
||||
self.fields['amount'].label = "Ποσότητα"
|
||||
self.fields['cake_type'].label = "Τύπος"
|
||||
self.fields['cake_type_num'].label = "Νούμερο"
|
||||
self.fields['cake_color'].label = "Χρώμα"
|
||||
self.fields['cake_color_other'].label = "Άλλο Χρώμα"
|
||||
self.fields['fyt_color'].label = "Φυτιλάκι-Χρώμα"
|
||||
self.fields['fyt_color_other'].label = "Φυτιλάκι-Χρώμα Άλλο"
|
||||
self.fields['cake_flavor'].label = "Γεύση"
|
||||
self.fields['cake_img'].label = "Φωτογραφία"
|
||||
self.fields['cream_cake_3d'].label = "3D"
|
||||
self.fields['cream_cake_height'].label = "Ύψος"
|
||||
self.fields['cream_cake_img'].label = "Φωτογραφία"
|
||||
self.fields['engagement_cake_type'].label = "Τύπος"
|
||||
self.fields['engagement_cake_base'].label = "Βάση"
|
||||
self.fields['engagement_cake_pcs'].label = "Τεμάχια"
|
||||
self.fields['engagement_cake_pcs_other'].label = "Τεμάχια Άλλο"
|
||||
self.fields['engagement_cake_glaze'].label = "Γλάσσο/Σαντιγύ"
|
||||
self.fields['cup_flavor'].label = "Γεύση"
|
||||
self.fields['cup_color'].label = "Χρώμα"
|
||||
self.fields['cup_color_other'].label = "Άλλο Χρώμα"
|
||||
self.fields['cup_type'].label = "Τύπος"
|
||||
self.fields['candy_bar_type'].label = "Τύπος CandyBar"
|
||||
self.fields['candy_bar_decor'].label = "Ντεκόρ CandyBar"
|
||||
self.fields['candy_bar_decor_other'].label = "Ντεκόρ CandyBar Άλλο"
|
||||
self.fields['candy_bar_wrap'].label = "Τύλιγμα CandyBar"
|
||||
self.fields['info'].label = "Πληροφορίες"
|
||||
|
||||
|
||||
OrderLineFormSet = inlineformset_factory(
|
||||
Order, OrderProduct, form=OrderLine,
|
||||
fields=['id', 'order', 'product', 'amount', 'cake_type', 'cake_type_num', 'cake_color', 'cake_color_other', 'fyt_color', 'fyt_color_other', 'cake_flavor', 'cake_img', 'cream_cake_3d', 'cream_cake_height', 'cream_cake_img', 'engagement_cake_type', 'engagement_cake_base', 'engagement_cake_pcs', 'engagement_cake_pcs_other', 'engagement_cake_glaze', 'cup_flavor', 'cup_color', 'cup_color_other', 'cup_type', 'candy_bar_type', 'candy_bar_decor', 'candy_bar_decor_other', 'candy_bar_wrap', 'info'], extra=1, can_delete=True
|
||||
)
|
||||
|
||||
OrderLineFormSetEdit = inlineformset_factory(
|
||||
Order, OrderProduct, form=OrderLine,
|
||||
fields=['id', 'order', 'product', 'amount', 'cake_type', 'cake_type_num', 'cake_color', 'cake_color_other', 'fyt_color', 'fyt_color_other', 'cake_flavor', 'cake_img', 'cream_cake_3d', 'cream_cake_height', 'cream_cake_img', 'engagement_cake_type', 'engagement_cake_base', 'engagement_cake_pcs', 'engagement_cake_pcs_other', 'engagement_cake_glaze', 'cup_flavor', 'cup_color', 'cup_color_other', 'cup_type', 'candy_bar_type', 'candy_bar_decor', 'candy_bar_decor_other', 'candy_bar_wrap', 'info'], extra=0, can_delete=True
|
||||
)
|
||||
|
||||
|
||||
class OrderForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = Order
|
||||
fields = ['order_status', 'customer_name', 'customer_address', 'customer_telephone', 'customer_email', 'delivery', 'delivery_date', 'store', 'order_info', 'order_products']
|
||||
widgets = {
|
||||
'delivery_date': forms.DateInput(attrs={'type': 'text', 'id': 'delivery_date', 'class': 'datepicker'}),
|
||||
'store': AddAnotherWidgetWrapper(
|
||||
forms.Select,
|
||||
reverse_lazy('orders_app:store_create'),
|
||||
),
|
||||
'order_info': forms.Textarea(attrs={'rows': 2, 'cols': 30}),
|
||||
# 'info': forms.Textarea(attrs={'type': 'text', 'id': 'order_date', 'class': 'datepicker'}),
|
||||
}
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(OrderForm, self).__init__(*args, **kwargs)
|
||||
self.helper = FormHelper()
|
||||
self.helper.form_tag = True
|
||||
self.helper.render_hidden_fields = True
|
||||
self.helper.form_class = 'form-horizontal'
|
||||
self.helper.label_class = 'col-md-3 create-label'
|
||||
self.helper.field_class = 'col-md-9'
|
||||
self.helper.attrs['autocomplete'] = 'off'
|
||||
self.fields['order_status'].label = "Κατάσταση Παραγγελίας"
|
||||
self.fields['customer_name'].label = "Πελάτης"
|
||||
self.fields['customer_telephone'].label = "Τηλέφωνο"
|
||||
self.fields['customer_address'].label = "Διεύθυνση"
|
||||
self.fields['customer_email'].label = "email"
|
||||
self.fields['delivery'].label = "Παράδοση"
|
||||
self.fields['delivery_date'].label = "Ημέρα Παράδοσης"
|
||||
self.fields['store'].label = "Κατάστημα"
|
||||
self.fields['order_info'].label = "Σχόλια Παραγγελίας"
|
||||
self.helper.layout = Layout(
|
||||
Div(
|
||||
Field('order_status'),
|
||||
Field('customer_name'),
|
||||
Field('customer_address'),
|
||||
Field('customer_telephone'),
|
||||
Field('customer_email'),
|
||||
Field('delivery'),
|
||||
Field('delivery_date'),
|
||||
Field('store'),
|
||||
Field('order_info'),
|
||||
HTML("<br>"),
|
||||
Fieldset('Προϊόντα Παραγγελίας',
|
||||
Formset('order_products')),
|
||||
HTML("<br>"),
|
||||
ButtonHolder(Submit('submit', 'Αποθήκευση')),
|
||||
)
|
||||
)
|
||||
@@ -0,0 +1,90 @@
|
||||
from crispy_forms.helper import FormHelper
|
||||
from crispy_forms.layout import Layout, Field, Fieldset, Div, HTML, ButtonHolder, Submit
|
||||
from .custom_layout_object import *
|
||||
from django import forms
|
||||
from django.contrib import admin
|
||||
from django.urls import reverse_lazy
|
||||
from django.forms.models import inlineformset_factory
|
||||
from django_addanother.widgets import AddAnotherWidgetWrapper
|
||||
|
||||
from orders_app.custom_layout_object import Formset
|
||||
from orders_app.models import Order, OrderProduct, CollectionTitle, Collection
|
||||
|
||||
|
||||
class OrderForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = Order
|
||||
exclude = ()
|
||||
widgets = {
|
||||
'store': AddAnotherWidgetWrapper(
|
||||
forms.Select,
|
||||
reverse_lazy('orders_app:create_store'),
|
||||
),
|
||||
|
||||
}
|
||||
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(OrderForm, self).__init__(*args, **kwargs)
|
||||
self.helper = FormHelper()
|
||||
self.helper.form_tag = True
|
||||
self.helper.form_class = 'form-horizontal'
|
||||
self.helper.label_class = 'col-md-3 create-label'
|
||||
self.helper.field_class = 'col-md-9'
|
||||
self.helper.layout = Layout(
|
||||
Div(
|
||||
Field('subject'),
|
||||
Field('owner'),
|
||||
Fieldset('Add titles',
|
||||
Formset('titles')),
|
||||
Field('note'),
|
||||
HTML("<br>"),
|
||||
ButtonHolder(Submit('submit', 'save')),
|
||||
)
|
||||
)
|
||||
|
||||
class StoreForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = Order
|
||||
fields = "__all__"
|
||||
|
||||
|
||||
OrderLinesFormSet = inlineformset_factory(Order, OrderProduct, form=OrderForm, fields=['product', 'name'], extra=1, can_delete=True)
|
||||
|
||||
|
||||
class CollectionTitleForm(forms.ModelForm):
|
||||
|
||||
class Meta:
|
||||
model = CollectionTitle
|
||||
exclude = ()
|
||||
|
||||
CollectionTitleFormSet = inlineformset_factory(
|
||||
Collection, CollectionTitle, form=CollectionTitleForm,
|
||||
fields=['name', 'language'], extra=1, can_delete=True
|
||||
)
|
||||
|
||||
|
||||
class CollectionForm(forms.ModelForm):
|
||||
|
||||
class Meta:
|
||||
model = Collection
|
||||
exclude = ['created_by', ]
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(CollectionForm, self).__init__(*args, **kwargs)
|
||||
self.helper = FormHelper()
|
||||
self.helper.form_tag = True
|
||||
self.helper.form_class = 'form-horizontal'
|
||||
self.helper.label_class = 'col-md-3 create-label'
|
||||
self.helper.field_class = 'col-md-9'
|
||||
self.helper.layout = Layout(
|
||||
Div(
|
||||
Field('subject'),
|
||||
Field('owner'),
|
||||
Fieldset('Add titles',
|
||||
Formset('titles')),
|
||||
Field('note'),
|
||||
HTML("<br>"),
|
||||
ButtonHolder(Submit('submit', 'Save')),
|
||||
)
|
||||
)
|
||||
@@ -0,0 +1,60 @@
|
||||
# Generated by Django 3.1.7 on 2021-03-30 15:47
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
import phonenumber_field.modelfields
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Customer',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Product',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='ProductAttrs',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=300)),
|
||||
('value', models.FloatField()),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='ProductType',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=300)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Store',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('address', models.CharField(max_length=300)),
|
||||
('telephone', phonenumber_field.modelfields.PhoneNumberField(max_length=128, region=None)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Order',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('order_date', models.DateField()),
|
||||
('delivery_date', models.DateField()),
|
||||
('store', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='orders_app.store')),
|
||||
],
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,17 @@
|
||||
# Generated by Django 3.1.7 on 2021-03-30 15:49
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RenameModel(
|
||||
old_name='ProductAttrs',
|
||||
new_name='ProductAttr',
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 3.1.7 on 2021-03-31 05:13
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0002_auto_20210330_1849'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='producttype',
|
||||
name='attributes',
|
||||
field=models.ManyToManyField(to='orders_app.ProductAttr'),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 3.1.7 on 2021-03-31 05:26
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0003_producttype_attributes'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='productattr',
|
||||
name='value',
|
||||
field=models.CharField(max_length=30),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,101 @@
|
||||
# Generated by Django 3.1.7 on 2021-03-31 07:06
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
import phonenumber_field.modelfields
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0004_auto_20210331_0826'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='productattr',
|
||||
name='name',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='productattr',
|
||||
name='value',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='producttype',
|
||||
name='attributes',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='customer',
|
||||
name='address',
|
||||
field=models.CharField(default='AZ', max_length=300),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='customer',
|
||||
name='facebook_instagram',
|
||||
field=models.CharField(default='AZ', max_length=300),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='customer',
|
||||
name='name',
|
||||
field=models.CharField(default='AZ', max_length=300),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='customer',
|
||||
name='telephone',
|
||||
field=phonenumber_field.modelfields.PhoneNumberField(default='+306955242965', max_length=128, region=None),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='product',
|
||||
name='name',
|
||||
field=models.CharField(default='az', max_length=300),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='productattr',
|
||||
name='amount',
|
||||
field=models.FloatField(default=0.0),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='productattr',
|
||||
name='attr1',
|
||||
field=models.CharField(default='AZ', max_length=30),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='productattr',
|
||||
name='attr2',
|
||||
field=models.CharField(default='AZ', max_length=30),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='productattr',
|
||||
name='attr_name',
|
||||
field=models.CharField(default='AZ', max_length=30),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='productattr',
|
||||
name='color',
|
||||
field=models.CharField(default='AZ', max_length=30),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='productattr',
|
||||
name='product',
|
||||
field=models.ForeignKey(default='1', on_delete=django.db.models.deletion.CASCADE, to='orders_app.product'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='productattr',
|
||||
name='product_type',
|
||||
field=models.ForeignKey(default='1', on_delete=django.db.models.deletion.CASCADE, to='orders_app.producttype'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='producttype',
|
||||
name='members',
|
||||
field=models.ManyToManyField(through='orders_app.ProductAttr', to='orders_app.Product'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='producttype',
|
||||
name='name',
|
||||
field=models.CharField(default='AZ', max_length=300),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,60 @@
|
||||
# Generated by Django 3.1.7 on 2021-03-31 07:09
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0005_auto_20210331_1006'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='productattr',
|
||||
name='amount',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='productattr',
|
||||
name='attr1',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='productattr',
|
||||
name='attr2',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='productattr',
|
||||
name='color',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='productattr',
|
||||
name='attr_value',
|
||||
field=models.CharField(default='0', max_length=30),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='customer',
|
||||
name='address',
|
||||
field=models.CharField(max_length=300),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='customer',
|
||||
name='facebook_instagram',
|
||||
field=models.CharField(max_length=300),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='customer',
|
||||
name='name',
|
||||
field=models.CharField(max_length=300),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='productattr',
|
||||
name='attr_name',
|
||||
field=models.CharField(max_length=30),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='producttype',
|
||||
name='name',
|
||||
field=models.CharField(max_length=300),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,25 @@
|
||||
# Generated by Django 3.1.7 on 2021-03-31 07:14
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0006_auto_20210331_1009'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='productattr',
|
||||
name='product',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='productattr',
|
||||
name='product_type',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='producttype',
|
||||
name='members',
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,58 @@
|
||||
# Generated by Django 3.1.7 on 2021-03-31 07:21
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0007_auto_20210331_1014'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='customer',
|
||||
name='address',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='customer',
|
||||
name='facebook_instagram',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='customer',
|
||||
name='name',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='customer',
|
||||
name='telephone',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='product',
|
||||
name='name',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='productattr',
|
||||
name='attr_name',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='productattr',
|
||||
name='attr_value',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='productattr',
|
||||
name='name',
|
||||
field=models.CharField(default='az', max_length=300),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='productattr',
|
||||
name='value',
|
||||
field=models.FloatField(default='0'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='producttype',
|
||||
name='attributes',
|
||||
field=models.ManyToManyField(to='orders_app.ProductAttr'),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,84 @@
|
||||
# Generated by Django 3.1.7 on 2021-03-31 07:47
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
import phonenumber_field.modelfields
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0008_auto_20210331_1021'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='producttype',
|
||||
name='attributes',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='customer',
|
||||
name='address',
|
||||
field=models.CharField(blank=True, max_length=300),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='customer',
|
||||
name='name',
|
||||
field=models.CharField(default='az', max_length=300),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='customer',
|
||||
name='social_media',
|
||||
field=models.CharField(default='az', max_length=300),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='customer',
|
||||
name='telephone',
|
||||
field=phonenumber_field.modelfields.PhoneNumberField(blank=True, max_length=128, region=None),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='product',
|
||||
name='amount',
|
||||
field=models.FloatField(default='0'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='product',
|
||||
name='attr1',
|
||||
field=models.IntegerField(blank=True, default='1'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='product',
|
||||
name='color1',
|
||||
field=models.CharField(default='az', max_length=300),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='product',
|
||||
name='color2',
|
||||
field=models.CharField(blank=True, max_length=300),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='product',
|
||||
name='color3',
|
||||
field=models.CharField(blank=True, max_length=300),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='product',
|
||||
name='name',
|
||||
field=models.CharField(default='qa', max_length=300),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='product',
|
||||
name='type',
|
||||
field=models.ForeignKey(default='1', on_delete=django.db.models.deletion.CASCADE, to='orders_app.producttype'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='ProductAttr',
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 3.1.7 on 2021-03-31 07:50
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0009_auto_20210331_1047'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='order',
|
||||
name='product',
|
||||
field=models.ManyToManyField(to='orders_app.Product'),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,26 @@
|
||||
# Generated by Django 3.1.7 on 2021-03-31 07:52
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0010_order_product'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='product',
|
||||
name='name',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='product',
|
||||
name='type',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='product',
|
||||
name='type',
|
||||
field=models.ManyToManyField(to='orders_app.ProductType'),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,46 @@
|
||||
# Generated by Django 3.1.7 on 2021-03-31 07:58
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0011_auto_20210331_1052'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='ProductAttrs',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=300)),
|
||||
],
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='product',
|
||||
name='attr1',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='product',
|
||||
name='color1',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='product',
|
||||
name='color2',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='product',
|
||||
name='color3',
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='product',
|
||||
name='amount',
|
||||
field=models.FloatField(blank=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='producttype',
|
||||
name='attr',
|
||||
field=models.ManyToManyField(blank=True, to='orders_app.ProductAttrs'),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 3.1.7 on 2021-03-31 08:00
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0012_auto_20210331_1058'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='producttype',
|
||||
name='attr',
|
||||
field=models.ManyToManyField(to='orders_app.ProductAttrs'),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 3.1.7 on 2021-03-31 08:02
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0013_auto_20210331_1100'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='productattrs',
|
||||
name='value',
|
||||
field=models.CharField(default='az', max_length=300),
|
||||
preserve_default=False,
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,80 @@
|
||||
# Generated by Django 3.1.7 on 2021-03-31 08:05
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0014_productattrs_value'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='producttype',
|
||||
name='attr',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='producttype',
|
||||
name='attr1',
|
||||
field=models.CharField(blank=True, max_length=128),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='producttype',
|
||||
name='attr2',
|
||||
field=models.CharField(blank=True, max_length=128),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='producttype',
|
||||
name='attr3',
|
||||
field=models.CharField(blank=True, max_length=128),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='producttype',
|
||||
name='attr4',
|
||||
field=models.CharField(blank=True, max_length=128),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='producttype',
|
||||
name='color1',
|
||||
field=models.CharField(blank=True, max_length=128),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='producttype',
|
||||
name='color2',
|
||||
field=models.CharField(blank=True, max_length=128),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='producttype',
|
||||
name='color3',
|
||||
field=models.CharField(blank=True, max_length=128),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='customer',
|
||||
name='address',
|
||||
field=models.CharField(blank=True, max_length=128),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='customer',
|
||||
name='name',
|
||||
field=models.CharField(max_length=128),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='customer',
|
||||
name='social_media',
|
||||
field=models.CharField(max_length=128),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='producttype',
|
||||
name='name',
|
||||
field=models.CharField(max_length=128),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='store',
|
||||
name='address',
|
||||
field=models.CharField(max_length=128),
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='ProductAttrs',
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,24 @@
|
||||
# Generated by Django 3.1.7 on 2021-03-31 08:07
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0015_auto_20210331_1105'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='product',
|
||||
name='type',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='product',
|
||||
name='type',
|
||||
field=models.ForeignKey(default='1', on_delete=django.db.models.deletion.CASCADE, to='orders_app.producttype'),
|
||||
preserve_default=False,
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,20 @@
|
||||
# Generated by Django 3.1.7 on 2021-03-31 08:09
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0016_auto_20210331_1107'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='order',
|
||||
name='customer',
|
||||
field=models.ForeignKey(default='1', on_delete=django.db.models.deletion.CASCADE, to='orders_app.customer'),
|
||||
preserve_default=False,
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 3.1.7 on 2021-03-31 08:10
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0017_order_customer'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='customer',
|
||||
name='social_media',
|
||||
field=models.CharField(blank=True, max_length=128),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,23 @@
|
||||
# Generated by Django 3.1.7 on 2021-03-31 08:36
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0018_auto_20210331_1110'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='product',
|
||||
name='amount',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='order',
|
||||
name='amount',
|
||||
field=models.FloatField(blank=True, default='0'),
|
||||
preserve_default=False,
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,82 @@
|
||||
# Generated by Django 3.1.7 on 2021-03-31 08:54
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0019_auto_20210331_1136'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='producttype',
|
||||
name='attr1',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='producttype',
|
||||
name='attr2',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='producttype',
|
||||
name='attr3',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='producttype',
|
||||
name='attr4',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='producttype',
|
||||
name='color1',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='producttype',
|
||||
name='color2',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='producttype',
|
||||
name='color3',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='product',
|
||||
name='attr1',
|
||||
field=models.CharField(blank=True, max_length=128),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='product',
|
||||
name='attr2',
|
||||
field=models.CharField(blank=True, max_length=128),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='product',
|
||||
name='attr3',
|
||||
field=models.CharField(blank=True, max_length=128),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='product',
|
||||
name='attr4',
|
||||
field=models.CharField(blank=True, max_length=128),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='product',
|
||||
name='color1',
|
||||
field=models.CharField(blank=True, max_length=128),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='product',
|
||||
name='color2',
|
||||
field=models.CharField(blank=True, max_length=128),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='product',
|
||||
name='color3',
|
||||
field=models.CharField(blank=True, max_length=128),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='product',
|
||||
name='name',
|
||||
field=models.CharField(default='Cale', max_length=128),
|
||||
preserve_default=False,
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,23 @@
|
||||
# Generated by Django 3.1.7 on 2021-03-31 08:59
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0020_auto_20210331_1154'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='order',
|
||||
name='amount',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='product',
|
||||
name='amount',
|
||||
field=models.FloatField(blank=True, default='0'),
|
||||
preserve_default=False,
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 3.1.7 on 2021-03-31 09:01
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0021_auto_20210331_1159'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='store',
|
||||
name='name',
|
||||
field=models.CharField(default='Spiti 1', max_length=128),
|
||||
preserve_default=False,
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,79 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-01 08:32
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
import phonenumber_field.modelfields
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = [
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Customer',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=128)),
|
||||
('address', models.CharField(blank=True, max_length=128)),
|
||||
('telephone', phonenumber_field.modelfields.PhoneNumberField(blank=True, max_length=128, region=None)),
|
||||
('social_media', models.CharField(blank=True, max_length=128)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Order',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('order_id', models.CharField(max_length=32)),
|
||||
('order_date', models.DateField()),
|
||||
('delivery_date', models.DateField()),
|
||||
('customer', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='orders_app.customer')),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Product',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=128)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Store',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=128)),
|
||||
('address', models.CharField(max_length=128)),
|
||||
('telephone', phonenumber_field.modelfields.PhoneNumberField(max_length=128, region=None)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='OrderProduct',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=128)),
|
||||
('amount', models.FloatField(blank=True)),
|
||||
('color1', models.CharField(blank=True, max_length=128)),
|
||||
('color2', models.CharField(blank=True, max_length=128)),
|
||||
('color3', models.CharField(blank=True, max_length=128)),
|
||||
('attr1', models.CharField(blank=True, max_length=128)),
|
||||
('attr2', models.CharField(blank=True, max_length=128)),
|
||||
('attr3', models.CharField(blank=True, max_length=128)),
|
||||
('attr4', models.CharField(blank=True, max_length=128)),
|
||||
('order', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='orders_app.order')),
|
||||
('type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='orders_app.product')),
|
||||
],
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='order',
|
||||
name='order_products',
|
||||
field=models.ManyToManyField(related_name='_order_order_products_+', to='orders_app.OrderProduct'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='order',
|
||||
name='store',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='orders_app.store'),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,17 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-01 08:36
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='orderproduct',
|
||||
name='order',
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-01 08:42
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0002_remove_orderproduct_order'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='orderproduct',
|
||||
name='name2',
|
||||
field=models.CharField(default='az', max_length=128),
|
||||
preserve_default=False,
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,37 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-01 09:15
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0003_orderproduct_name2'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RenameField(
|
||||
model_name='orderproduct',
|
||||
old_name='type',
|
||||
new_name='product',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='order',
|
||||
name='order_id',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='order',
|
||||
name='order_products',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='orderproduct',
|
||||
name='name2',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='orderproduct',
|
||||
name='order',
|
||||
field=models.ForeignKey(default='1', on_delete=django.db.models.deletion.CASCADE, to='orders_app.order'),
|
||||
preserve_default=False,
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-01 09:17
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0004_auto_20210401_1215'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='order',
|
||||
name='order_products',
|
||||
field=models.ManyToManyField(through='orders_app.OrderProduct', to='orders_app.Product'),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-01 09:20
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0005_order_order_products'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='order',
|
||||
name='order_id',
|
||||
field=models.CharField(default='00000', max_length=32),
|
||||
preserve_default=False,
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,39 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-01 09:30
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0006_order_order_id'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='orderproduct',
|
||||
name='order',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='orderproduct',
|
||||
name='product',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='product',
|
||||
name='order',
|
||||
field=models.ForeignKey(default='1', on_delete=django.db.models.deletion.CASCADE, to='orders_app.order'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='product',
|
||||
name='product',
|
||||
field=models.ForeignKey(default='1', on_delete=django.db.models.deletion.CASCADE, to='orders_app.orderproduct'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='order',
|
||||
name='order_products',
|
||||
field=models.ManyToManyField(related_name='_order_order_products_+', through='orders_app.Product', to='orders_app.OrderProduct'),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,51 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-01 09:39
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0007_auto_20210401_1230'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='orderproduct',
|
||||
name='attr3',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='orderproduct',
|
||||
name='attr4',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='orderproduct',
|
||||
name='color3',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='product',
|
||||
name='order',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='product',
|
||||
name='product',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='orderproduct',
|
||||
name='order',
|
||||
field=models.ForeignKey(default='1', on_delete=django.db.models.deletion.CASCADE, to='orders_app.order'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='orderproduct',
|
||||
name='product',
|
||||
field=models.ForeignKey(default='1', on_delete=django.db.models.deletion.CASCADE, to='orders_app.product'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='order',
|
||||
name='order_products',
|
||||
field=models.ManyToManyField(related_name='_order_order_products_+', through='orders_app.OrderProduct', to='orders_app.Product'),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,35 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-02 05:48
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
('orders_app', '0008_auto_20210401_1239'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Collection',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('subject', models.CharField(blank=True, max_length=300)),
|
||||
('owner', models.CharField(blank=True, max_length=300)),
|
||||
('note', models.TextField(blank=True)),
|
||||
('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='collections', to=settings.AUTH_USER_MODEL)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='CollectionTitle',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('name', models.CharField(max_length=500, verbose_name='Title')),
|
||||
('language', models.CharField(max_length=3)),
|
||||
('collection', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='has_titles', to='orders_app.collection')),
|
||||
],
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,26 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-02 08:37
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0009_collection_collectiontitle'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='orderproduct',
|
||||
name='attr1',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='orderproduct',
|
||||
name='attr2',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='orderproduct',
|
||||
name='info',
|
||||
field=models.CharField(blank=True, max_length=512),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,26 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-02 08:39
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0010_auto_20210402_1137'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RenameField(
|
||||
model_name='orderproduct',
|
||||
old_name='color1',
|
||||
new_name='color',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='orderproduct',
|
||||
name='color2',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='orderproduct',
|
||||
name='name',
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-02 10:19
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0011_auto_20210402_1139'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='orderproduct',
|
||||
name='color2',
|
||||
field=models.CharField(blank=True, max_length=128),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-02 10:22
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0012_orderproduct_color2'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RenameField(
|
||||
model_name='orderproduct',
|
||||
old_name='color',
|
||||
new_name='color1',
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-02 10:23
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0013_auto_20210402_1322'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='amount',
|
||||
field=models.FloatField(),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,32 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-02 11:25
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0014_auto_20210402_1323'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='collectiontitle',
|
||||
name='collection',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='order',
|
||||
name='order_id',
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='order',
|
||||
name='order_products',
|
||||
field=models.ManyToManyField(blank=True, related_name='_order_order_products_+', through='orders_app.OrderProduct', to='orders_app.Product'),
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='Collection',
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='CollectionTitle',
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-02 11:59
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0015_auto_20210402_1425'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='order',
|
||||
name='order_products',
|
||||
field=models.ManyToManyField(related_name='_order_order_products_+', through='orders_app.OrderProduct', to='orders_app.Product'),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-02 12:12
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0016_auto_20210402_1459'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='order',
|
||||
name='order_products',
|
||||
field=models.ManyToManyField(blank=True, related_name='_order_order_products_+', through='orders_app.OrderProduct', to='orders_app.Product'),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,24 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-02 17:42
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0017_auto_20210402_1512'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='order',
|
||||
name='order_products',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='orderproduct',
|
||||
name='customer',
|
||||
field=models.ForeignKey(default='1', on_delete=django.db.models.deletion.CASCADE, to='orders_app.customer'),
|
||||
preserve_default=False,
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,22 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-02 17:45
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0018_auto_20210402_2042'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='orderproduct',
|
||||
name='customer',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='order',
|
||||
name='order_products',
|
||||
field=models.ManyToManyField(blank=True, related_name='_order_order_products_+', through='orders_app.OrderProduct', to='orders_app.Product'),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-03 08:05
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0019_auto_20210402_2045'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='amount',
|
||||
field=models.FloatField(blank=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,23 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-03 11:29
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0020_auto_20210403_1105'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='order',
|
||||
name='status',
|
||||
field=models.CharField(choices=[('ΝΕΑ', 'ΝΕΑ'), ('ΕΠΕ', 'ΕΠΕ'), ('ΕΤΜ', 'ΕΤΟΙΜΗ')], default='ΝΕΑ', max_length=3),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='order',
|
||||
name='order_date',
|
||||
field=models.DateTimeField(auto_now_add=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,23 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-03 11:33
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0021_auto_20210403_1429'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='order',
|
||||
name='delivery_date',
|
||||
field=models.DateTimeField(),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='order',
|
||||
name='status',
|
||||
field=models.CharField(choices=[('ΝΕΑ', 'ΝΕΑ'), ('ΕΠΕ', 'ΥΠΟ ΕΠΕΞΕΡΓΑΣΙΑ'), ('ΕΤΜ', 'ΕΤΟΙΜΗ')], default='ΝΕΑ', max_length=3),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-03 11:37
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0022_auto_20210403_1433'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='order',
|
||||
name='delivery_date',
|
||||
field=models.DateField(),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-04 05:40
|
||||
|
||||
import django.core.validators
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0023_auto_20210403_1437'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='amount',
|
||||
field=models.FloatField(validators=[django.core.validators.MinValueValidator(0.01), django.core.validators.MaxValueValidator(999)]),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-04 10:13
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0024_auto_20210404_0840'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='order',
|
||||
name='status',
|
||||
field=models.CharField(choices=[('ΝΕΑ', 'ΝΕΑ'), ('ΕΠΕ', 'ΥΠΟ ΕΠΕΞΕΡΓΑΣΙΑ'), ('ΕΤΜ', 'ΕΤΟΙΜΗ')], max_length=3),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,22 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-04 10:20
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0025_auto_20210404_1313'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='order',
|
||||
name='status',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='order',
|
||||
name='order_status',
|
||||
field=models.CharField(choices=[('ΝΕΑ', 'ΝΕΑ'), ('ΕΠΕ', 'ΥΠΟ ΕΠΕΞΕΡΓΑΣΙΑ'), ('ΕΤΜ', 'ΕΤΟΙΜΗ')], default='ΝΕΑ', max_length=3),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-05 07:19
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0026_auto_20210404_1320'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='order',
|
||||
name='order_info',
|
||||
field=models.CharField(blank=True, max_length=512),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-05 07:37
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0027_order_order_info'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='customer',
|
||||
name='email',
|
||||
field=models.CharField(blank=True, max_length=128),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,24 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-28 06:25
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0028_customer_email'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='product',
|
||||
name='flavor',
|
||||
field=models.CharField(blank=True, max_length=128),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='product',
|
||||
name='type',
|
||||
field=models.CharField(choices=[('ΤΟΥΡΤΕΣ ΓΕΝΕΘΛΙΩΝ', 'ΤΟΥΡΤΕΣ ΓΕΝΕΘΛΙΩΝ'), ('ΤΟΥΡΤΕΣ ΒΟΥΤΗΡΟΚΡΕΜΑ - ΖΑΧΑΡΟΠΑΣΤΑ', 'ΤΟΥΡΤΕΣ ΒΟΥΤΗΡΟΚΡΕΜΑ - ΖΑΧΑΡΟΠΑΣΤΑ'), ('ΤΟΥΡΤΕΣ ΓΑΜΟΥ-ΑΡΡΑΒΩΝΑ', 'ΤΟΥΡΤΕΣ ΓΑΜΟΥ-ΑΡΡΑΒΩΝΑ'), ('ΒΑΠΤΙΣΗ', 'ΒΑΠΤΙΣΗ'), ('CANDY BAR', 'CANDY BAR'), ('ΔΙΑΦΟΡΑ', 'ΒΑΠΤΙΣΗ')], default=1, max_length=45),
|
||||
preserve_default=False,
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,31 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-28 08:56
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0029_auto_20210428_0925'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='product',
|
||||
name='flavor',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='product',
|
||||
name='type',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='orderproduct',
|
||||
name='flavor',
|
||||
field=models.CharField(blank=True, max_length=128),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='orderproduct',
|
||||
name='type',
|
||||
field=models.CharField(blank=True, choices=[('ΤΟΥΡΤΕΣ ΓΕΝΕΘΛΙΩΝ', 'ΤΟΥΡΤΕΣ ΓΕΝΕΘΛΙΩΝ'), ('ΤΟΥΡΤΕΣ ΒΟΥΤΗΡΟΚΡΕΜΑ - ΖΑΧΑΡΟΠΑΣΤΑ', 'ΤΟΥΡΤΕΣ ΒΟΥΤΗΡΟΚΡΕΜΑ - ΖΑΧΑΡΟΠΑΣΤΑ'), ('ΤΟΥΡΤΕΣ ΓΑΜΟΥ-ΑΡΡΑΒΩΝΑ', 'ΤΟΥΡΤΕΣ ΓΑΜΟΥ-ΑΡΡΑΒΩΝΑ'), ('ΒΑΠΤΙΣΗ', 'ΒΑΠΤΙΣΗ'), ('CANDY BAR', 'CANDY BAR'), ('ΔΙΑΦΟΡΑ', 'ΒΑΠΤΙΣΗ')], max_length=45),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,52 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-28 09:51
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0030_auto_20210428_1156'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RenameField(
|
||||
model_name='orderproduct',
|
||||
old_name='flavor',
|
||||
new_name='cake_color_other',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='orderproduct',
|
||||
name='type',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='orderproduct',
|
||||
name='cake_color',
|
||||
field=models.CharField(blank=True, choices=[('ΛΕΥΚΟ', 'ΛΕΥΚΟ'), ('ΡΟΖ', 'ΡΟΖ'), ('ΣΙΕΛ', 'ΣΙΕΛ'), ('ΚΙΤΡΙΝΟ', 'ΚΙΤΡΙΝΟ'), ('ΠΡΑΣΙΝΟ', 'ΠΡΑΣΙΝΟ'), ('ΚΟΚΚΙΝΟ', 'ΚΟΚΚΙΝΟ'), ('ΜΠΛΕ', 'ΜΠΛΕ'), ('ΜΑΥΡΟ', 'ΜΑΥΡΟ'), ('ΣΕΡΑΝΟ', 'ΣΕΡΑΝΟ'), ('ΚΑΦΕ', 'ΚΑΦΕ'), ('ΒΕΡΑΜΑΝ', 'ΒΕΡΑΜΑΝ'), ('ΛΙΛΑ', 'ΛΙΛΑ'), ('ΦΟΥΞ', 'ΦΟΥΞ'), ('ΆΛΛΟ', 'ΆΛΛΟ')], max_length=45),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='orderproduct',
|
||||
name='cake_flavor',
|
||||
field=models.CharField(blank=True, choices=[('Ανάμεικτη', 'Ανάμεικτη '), ('Αγριοκέρασο', 'Αγριοκέρασο'), ('Ανάμεικτη Αγριοκέρασο', 'Ανάμεικτη Αγριοκέρασο'), ('Μπισκότο', 'Μπισκότο'), ('Oreo', 'Oreo'), ('Kinder', 'Kinder'), ('Σοκολάτα Φράουλα', 'Σοκολάτα Φράουλα'), ('Ferrero', 'Ferrero'), ('Nutella', 'Nutella'), ('Σοκολάτα Μπισκότο', 'Σοκολάτα Μπισκότο'), ('Λεμονί', 'Λεμονί'), ('Μπανάνα', 'Μπανάνα '), ('Σοκολατίνα', 'Σοκολατίνα'), ('Τιραμισού', 'Τιραμισού'), ('Φράουλα Κρέμα', 'Φράουλα Κρέμα'), ('Δούκισσα μπισκότο', 'Δούκισσα μπισκότο'), ('Καραμέλα', 'Καραμέλα'), ('Ανάμεικτη Σαμπάνια', 'Ανάμεικτη Σαμπάνια'), ('Γιαούρτι Ανανάς', 'Γιαούρτι Ανανάς ')], max_length=45),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='orderproduct',
|
||||
name='cake_type',
|
||||
field=models.CharField(blank=True, choices=[('ΤΟΥΡΤΕΣ ΓΕΝΕΘΛΙΩΝ', 'ΤΟΥΡΤΕΣ ΓΕΝΕΘΛΙΩΝ'), ('ΤΟΥΡΤΕΣ ΒΟΥΤΗΡΟΚΡΕΜΑ-ΖΑΧΑΡΟΠΑΣΤΑ', 'ΤΟΥΡΤΕΣ ΒΟΥΤΗΡΟΚΡΕΜΑ-ΖΑΧΑΡΟΠΑΣΤΑ'), ('ΤΟΥΡΤΕΣ ΓΑΜΟΥ-ΑΡΡΑΒΩΝΑ', 'ΤΟΥΡΤΕΣ ΓΑΜΟΥ-ΑΡΡΑΒΩΝΑ'), ('ΒΑΠΤΙΣΗ', 'ΒΑΠΤΙΣΗ'), ('CANDY BAR', 'CANDY BAR'), ('ΔΙΑΦΟΡΑ', 'ΒΑΠΤΙΣΗ')], max_length=45),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='orderproduct',
|
||||
name='cup_flavor',
|
||||
field=models.CharField(blank=True, choices=[('Προφιτερόλ', 'Προφιτερόλ'), ('Εκμέκ', 'Εκμέκ'), ('Banoffee', 'Banoffee'), ('Τιραμισού Brownies', 'Τιραμισού Brownies'), ('Τσιζκεικ', 'Τσιζκεικ'), ('Lemon pie', 'Lemon pie'), ('Φερρέρο Brownies', 'Φερρέρο Brownies'), ('Μους Brownies', 'Μους Brownies'), ('Lila Pause', 'Lila Pause')], max_length=45),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='orderproduct',
|
||||
name='fyt_color',
|
||||
field=models.CharField(blank=True, choices=[('ΛΕΥΚΟ', 'ΛΕΥΚΟ'), ('ΡΟΖ', 'ΡΟΖ'), ('ΣΙΕΛ', 'ΣΙΕΛ'), ('ΚΙΤΡΙΝΟ', 'ΚΙΤΡΙΝΟ'), ('ΠΡΑΣΙΝΟ', 'ΠΡΑΣΙΝΟ'), ('ΚΟΚΚΙΝΟ', 'ΚΟΚΚΙΝΟ'), ('ΜΠΛΕ', 'ΜΠΛΕ'), ('ΜΑΥΡΟ', 'ΜΑΥΡΟ'), ('ΣΕΡΑΝΟ', 'ΣΕΡΑΝΟ'), ('ΚΑΦΕ', 'ΚΑΦΕ'), ('ΒΕΡΑΜΑΝ', 'ΒΕΡΑΜΑΝ'), ('ΛΙΛΑ', 'ΛΙΛΑ'), ('ΦΟΥΞ', 'ΦΟΥΞ'), ('ΆΛΛΟ', 'ΆΛΛΟ')], max_length=45),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='orderproduct',
|
||||
name='fyt_color_other',
|
||||
field=models.CharField(blank=True, max_length=128),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,96 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-28 12:15
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0031_auto_20210428_1251'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='orderproduct',
|
||||
name='candy_bar_decor',
|
||||
field=models.CharField(blank=True, choices=[('ΔΙΑΚΟΣΜΗΣΗ', 'ΔΙΑΚΟΣΜΗΣΗ'), ('ΠΟΛΥΧΡΩΜΗ ΤΡΟΥΦΑ', 'ΠΟΛΥΧΡΩΜΗ ΤΡΟΥΦΑ'), ('ΧΡΩΜΑΤΙΣΤΗ ΤΡΟΥΦΑ', 'ΧΡΩΜΑΤΙΣΤΗ ΤΡΟΥΦΑ'), ('ΓΡΑΜΜΕΣ ΣΟΚΟΛΑΤΑΣ', 'ΓΡΑΜΜΕΣ ΣΟΚΟΛΑΤΑΣ'), ('ΆΛΛΟ', 'ΆΛΛΟ')], max_length=45),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='orderproduct',
|
||||
name='candy_bar_decor_other',
|
||||
field=models.CharField(blank=True, max_length=128),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='orderproduct',
|
||||
name='candy_bar_wrap',
|
||||
field=models.CharField(blank=True, choices=[('ΤΥΛΙΓΜΕΝΑ', 'ΤΥΛΙΓΜΕΝΑ'), ('ΑΤΥΛΙΧΤΑ', 'ΑΤΥΛΙΧΤΑ')], max_length=45),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='orderproduct',
|
||||
name='cream_cake_3d',
|
||||
field=models.CharField(blank=True, choices=[('ΝΑΙ', 'ΝΑΙ'), ('ΟΧΙ', 'ΟΧΙ')], default='ΟΧΙ', max_length=45),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='orderproduct',
|
||||
name='cream_cake_height',
|
||||
field=models.FloatField(blank=True, default=1, max_length=128),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='orderproduct',
|
||||
name='cup_color',
|
||||
field=models.CharField(blank=True, choices=[('ΛΕΥΚΟ', 'ΛΕΥΚΟ'), ('ΡΟΖ', 'ΡΟΖ'), ('ΣΙΕΛ', 'ΣΙΕΛ'), ('ΚΙΤΡΙΝΟ', 'ΚΙΤΡΙΝΟ'), ('ΠΡΑΣΙΝΟ', 'ΠΡΑΣΙΝΟ'), ('ΚΟΚΚΙΝΟ', 'ΚΟΚΚΙΝΟ'), ('ΜΠΛΕ', 'ΜΠΛΕ'), ('ΜΑΥΡΟ', 'ΜΑΥΡΟ'), ('ΣΕΡΑΝΟ', 'ΣΕΡΑΝΟ'), ('ΚΑΦΕ', 'ΚΑΦΕ'), ('ΒΕΡΑΜΑΝ', 'ΒΕΡΑΜΑΝ'), ('ΛΙΛΑ', 'ΛΙΛΑ'), ('ΦΟΥΞ', 'ΦΟΥΞ'), ('ΆΛΛΟ', 'ΆΛΛΟ')], max_length=45),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='orderproduct',
|
||||
name='cup_color_other',
|
||||
field=models.CharField(blank=True, max_length=128),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='orderproduct',
|
||||
name='cup_type',
|
||||
field=models.CharField(blank=True, choices=[('ΚΥΠΕΛΛΟ', 'ΚΥΠΕΛΛΟ'), ('ΤΕΤΡΑΓΩΝΟ ', 'ΤΕΤΡΑΓΩΝΟ '), ('ΣΤΡΟΓΓΥΛΟ', 'ΣΤΡΟΓΓΥΛΟ'), ('ΣΦΗΝΑΚΙ', 'ΣΦΗΝΑΚΙ')], max_length=45),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='orderproduct',
|
||||
name='delivery',
|
||||
field=models.CharField(blank=True, choices=[('ΠΑΡΑΛΑΒΗ ΑΠΟ ΚΑΤΑΣΤΗΜΑ', 'ΠΑΡΑΛΑΒΗ ΑΠΟ ΚΑΤΑΣΤΗΜΑ'), ('ΑΠΟΣΤΟΛΗ', 'ΑΠΟΣΤΟΛΗ')], default='ΠΑΡΑΛΑΒΗ ΑΠΟ ΚΑΤΑΣΤΗΜΑ', max_length=45),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='orderproduct',
|
||||
name='engagement_cake_base',
|
||||
field=models.CharField(blank=True, max_length=128),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='orderproduct',
|
||||
name='engagement_cake_glaze',
|
||||
field=models.CharField(blank=True, choices=[('ΓΛΑΣΣΟ', 'ΓΛΑΣΣΟ'), ('ΣΑΝΤΙΓΥ', 'ΣΑΝΤΙΓΥ')], max_length=45),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='orderproduct',
|
||||
name='engagement_cake_pcs_other',
|
||||
field=models.CharField(blank=True, max_length=128),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='orderproduct',
|
||||
name='engagement_cake_piecies',
|
||||
field=models.CharField(blank=True, choices=[('ΑΤΟΜΙΚΑ', 'ΑΤΟΜΙΚΑ'), ('ΚΥΠΕΛΛΟ', 'ΚΥΠΕΛΛΟ'), ('ΣΦΗΝΑΚΙ', 'ΣΦΗΝΑΚΙ'), ('ΆΛΛΟ', 'ΆΛΛΟ')], max_length=45),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='orderproduct',
|
||||
name='engagement_cake_type',
|
||||
field=models.CharField(blank=True, choices=[('ΑΡΡΑΒΩΝΑΣ', 'ΑΡΡΑΒΩΝΑΣ'), ('ΓΑΜΟΣ', 'ΓΑΜΟΣ')], max_length=45),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='orderproduct',
|
||||
name='store_pickup',
|
||||
field=models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to='orders_app.store'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='cake_type',
|
||||
field=models.CharField(blank=True, choices=[('KARDASIS', 'KARDASIS'), ('PAN DÉCOR', 'PAN DÉCOR')], max_length=45),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,26 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-30 12:57
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0032_auto_20210428_1515'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='orderproduct',
|
||||
name='color1',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='orderproduct',
|
||||
name='color2',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='orderproduct',
|
||||
name='candy_bar_type',
|
||||
field=models.CharField(blank=True, choices=[('Cup cake με επικάλυψη και διακοσμητικά ζαχαρόπαστας', 'Cup cake με επικάλυψη και διακοσμητικά ζαχαρόπαστας'), ('Cup cakes με ζαχαρόπαστα και εκτύπωση', 'Cup cakes με ζαχαρόπαστα και εκτύπωση'), ('Cup cakes με χρωματιστή βουτυρόκρεμα', 'Cup cakes με χρωματιστή βουτυρόκρεμα'), ('Donuts με χρωματιστό γλάσσο', 'Donuts με χρωματιστό γλάσσο'), ('Pop cakes ', 'Pop cakes '), ('Μπισκότα με επικάλυψη ζαχαρόπαστας ', 'Μπισκότα με επικάλυψη ζαχαρόπαστας '), ('Μπισκότα με επικάλυψη και διακοσμητικά ζαχαρόπαστας', 'Μπισκότα με επικάλυψη και διακοσμητικά ζαχαρόπαστας'), ('Μπισκότα με επικάλυψη χρωματιστής σοκολάτας', 'Μπισκότα με επικάλυψη χρωματιστής σοκολάτας'), ('Μπισκότα σε σχήμα', 'Μπισκότα σε σχήμα'), ('Στρόγγυλα μπισκότα με επικάλυψη ζαχαρόπαστας και εκτύπωση ', 'Στρόγγυλα μπισκότα με επικάλυψη ζαχαρόπαστας και εκτύπωση '), ('Χωνάκι παγωτού με πολύχρωμα ζαχαρωτά τυλιγμένα σε ζελατίνα', 'Χωνάκι παγωτού με πολύχρωμα ζαχαρωτά τυλιγμένα σε ζελατίνα'), ('Μπεζεδάκια πολύχρωμα γεμιστά με κρέμα ', 'Μπεζεδάκια πολύχρωμα γεμιστά με κρέμα '), ('Μπολ με πολύχρωμα Marshmallows', 'Μπολ με πολύχρωμα Marshmallows'), ('Μπολ με κουφέτα ', 'Μπολ με κουφέτα '), ('Μπολ με μίνι σοκολάτες (Twix, Bueno, Derby, Lacta, Σοκοφρέτα)', 'Μπολ με μίνι σοκολάτες (Twix, Bueno, Derby, Lacta, Σοκοφρέτα)'), ('Μπολ με πολύχρωμους μπεζέδες', 'Μπολ με πολύχρωμους μπεζέδες'), ('Γλειφιτζούρια spiral (ροζ, γαλάζια)', 'Γλειφιτζούρια spiral (ροζ, γαλάζια)')], max_length=61),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,28 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-30 15:56
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0033_auto_20210430_1557'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='cake_color',
|
||||
field=models.CharField(blank=True, choices=[('ΛΕΥΚΟ', 'ΛΕΥΚΟ'), ('ΡΟΖ', 'ΡΟΖ'), ('ΣΙΕΛ', 'ΣΙΕΛ'), ('ΚΙΤΡΙΝΟ', 'ΚΙΤΡΙΝΟ'), ('ΠΡΑΣΙΝΟ', 'ΠΡΑΣΙΝΟ'), ('ΚΟΚΚΙΝΟ', 'ΚΟΚΚΙΝΟ'), ('ΜΠΛΕ', 'ΜΠΛΕ'), ('ΜΑΥΡΟ', 'ΜΑΥΡΟ'), ('ΣΕΡΑΝΟ', 'ΣΕΡΑΝΟ'), ('ΚΑΦΕ', 'ΚΑΦΕ'), ('ΒΕΡΑΜΑΝ', 'ΒΕΡΑΜΑΝ'), ('ΛΙΛΑ', 'ΛΙΛΑ'), ('ΦΟΥΞ', 'ΦΟΥΞ'), ('ΔΙΑΦΑΝΟ', 'ΔΙΑΦΑΝΟ'), ('ΆΛΛΟ', 'ΆΛΛΟ')], max_length=45),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='cup_color',
|
||||
field=models.CharField(blank=True, choices=[('ΛΕΥΚΟ', 'ΛΕΥΚΟ'), ('ΡΟΖ', 'ΡΟΖ'), ('ΣΙΕΛ', 'ΣΙΕΛ'), ('ΚΙΤΡΙΝΟ', 'ΚΙΤΡΙΝΟ'), ('ΠΡΑΣΙΝΟ', 'ΠΡΑΣΙΝΟ'), ('ΚΟΚΚΙΝΟ', 'ΚΟΚΚΙΝΟ'), ('ΜΠΛΕ', 'ΜΠΛΕ'), ('ΜΑΥΡΟ', 'ΜΑΥΡΟ'), ('ΣΕΡΑΝΟ', 'ΣΕΡΑΝΟ'), ('ΚΑΦΕ', 'ΚΑΦΕ'), ('ΒΕΡΑΜΑΝ', 'ΒΕΡΑΜΑΝ'), ('ΛΙΛΑ', 'ΛΙΛΑ'), ('ΦΟΥΞ', 'ΦΟΥΞ'), ('ΔΙΑΦΑΝΟ', 'ΔΙΑΦΑΝΟ'), ('ΆΛΛΟ', 'ΆΛΛΟ')], max_length=45),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='fyt_color',
|
||||
field=models.CharField(blank=True, choices=[('ΛΕΥΚΟ', 'ΛΕΥΚΟ'), ('ΡΟΖ', 'ΡΟΖ'), ('ΣΙΕΛ', 'ΣΙΕΛ'), ('ΚΙΤΡΙΝΟ', 'ΚΙΤΡΙΝΟ'), ('ΠΡΑΣΙΝΟ', 'ΠΡΑΣΙΝΟ'), ('ΚΟΚΚΙΝΟ', 'ΚΟΚΚΙΝΟ'), ('ΜΠΛΕ', 'ΜΠΛΕ'), ('ΜΑΥΡΟ', 'ΜΑΥΡΟ'), ('ΣΕΡΑΝΟ', 'ΣΕΡΑΝΟ'), ('ΚΑΦΕ', 'ΚΑΦΕ'), ('ΒΕΡΑΜΑΝ', 'ΒΕΡΑΜΑΝ'), ('ΛΙΛΑ', 'ΛΙΛΑ'), ('ΦΟΥΞ', 'ΦΟΥΞ'), ('ΔΙΑΦΑΝΟ', 'ΔΙΑΦΑΝΟ'), ('ΆΛΛΟ', 'ΆΛΛΟ')], max_length=45),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-30 17:51
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0034_auto_20210430_1856'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='orderproduct',
|
||||
name='cake_type_num',
|
||||
field=models.FloatField(blank=True, default=11, max_length=128),
|
||||
preserve_default=False,
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,36 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-30 18:54
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0035_orderproduct_cake_type_num'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='orderproduct',
|
||||
name='delivery',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='orderproduct',
|
||||
name='store_pickup',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='order',
|
||||
name='delivery',
|
||||
field=models.CharField(blank=True, choices=[('ΠΑΡΑΛΑΒΗ ΑΠΟ ΚΑΤΑΣΤΗΜΑ', 'ΠΑΡΑΛΑΒΗ ΑΠΟ ΚΑΤΑΣΤΗΜΑ'), ('ΑΠΟΣΤΟΛΗ', 'ΑΠΟΣΤΟΛΗ')], default='ΠΑΡΑΛΑΒΗ ΑΠΟ ΚΑΤΑΣΤΗΜΑ', max_length=45),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='cake_type_num',
|
||||
field=models.FloatField(blank=True, default='0', max_length=128),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='cream_cake_height',
|
||||
field=models.FloatField(blank=True, default='0', max_length=128),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,23 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-30 19:19
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0036_auto_20210430_2154'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='order',
|
||||
name='delivery',
|
||||
field=models.CharField(choices=[('ΠΑΡΑΛΑΒΗ ΑΠΟ ΚΑΤΑΣΤΗΜΑ', 'ΠΑΡΑΛΑΒΗ ΑΠΟ ΚΑΤΑΣΤΗΜΑ'), ('ΑΠΟΣΤΟΛΗ', 'ΑΠΟΣΤΟΛΗ')], default='ΠΑΡΑΛΑΒΗ ΑΠΟ ΚΑΤΑΣΤΗΜΑ', max_length=45),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='cream_cake_height',
|
||||
field=models.FloatField(default='0', max_length=128),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-30 19:22
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0037_auto_20210430_2219'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='cream_cake_height',
|
||||
field=models.FloatField(blank=True, default='0', max_length=128, null=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,118 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-30 19:25
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0038_auto_20210430_2222'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='cake_color',
|
||||
field=models.CharField(blank=True, choices=[('ΛΕΥΚΟ', 'ΛΕΥΚΟ'), ('ΡΟΖ', 'ΡΟΖ'), ('ΣΙΕΛ', 'ΣΙΕΛ'), ('ΚΙΤΡΙΝΟ', 'ΚΙΤΡΙΝΟ'), ('ΠΡΑΣΙΝΟ', 'ΠΡΑΣΙΝΟ'), ('ΚΟΚΚΙΝΟ', 'ΚΟΚΚΙΝΟ'), ('ΜΠΛΕ', 'ΜΠΛΕ'), ('ΜΑΥΡΟ', 'ΜΑΥΡΟ'), ('ΣΕΡΑΝΟ', 'ΣΕΡΑΝΟ'), ('ΚΑΦΕ', 'ΚΑΦΕ'), ('ΒΕΡΑΜΑΝ', 'ΒΕΡΑΜΑΝ'), ('ΛΙΛΑ', 'ΛΙΛΑ'), ('ΦΟΥΞ', 'ΦΟΥΞ'), ('ΔΙΑΦΑΝΟ', 'ΔΙΑΦΑΝΟ'), ('ΆΛΛΟ', 'ΆΛΛΟ')], max_length=45, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='cake_color_other',
|
||||
field=models.CharField(blank=True, max_length=128, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='cake_flavor',
|
||||
field=models.CharField(blank=True, choices=[('Ανάμεικτη', 'Ανάμεικτη '), ('Αγριοκέρασο', 'Αγριοκέρασο'), ('Ανάμεικτη Αγριοκέρασο', 'Ανάμεικτη Αγριοκέρασο'), ('Μπισκότο', 'Μπισκότο'), ('Oreo', 'Oreo'), ('Kinder', 'Kinder'), ('Σοκολάτα Φράουλα', 'Σοκολάτα Φράουλα'), ('Ferrero', 'Ferrero'), ('Nutella', 'Nutella'), ('Σοκολάτα Μπισκότο', 'Σοκολάτα Μπισκότο'), ('Λεμονί', 'Λεμονί'), ('Μπανάνα', 'Μπανάνα '), ('Σοκολατίνα', 'Σοκολατίνα'), ('Τιραμισού', 'Τιραμισού'), ('Φράουλα Κρέμα', 'Φράουλα Κρέμα'), ('Δούκισσα μπισκότο', 'Δούκισσα μπισκότο'), ('Καραμέλα', 'Καραμέλα'), ('Ανάμεικτη Σαμπάνια', 'Ανάμεικτη Σαμπάνια'), ('Γιαούρτι Ανανάς', 'Γιαούρτι Ανανάς ')], max_length=45, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='cake_type',
|
||||
field=models.CharField(blank=True, choices=[('KARDASIS', 'KARDASIS'), ('PAN DÉCOR', 'PAN DÉCOR')], max_length=45, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='cake_type_num',
|
||||
field=models.FloatField(blank=True, default='0', max_length=128, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='candy_bar_decor',
|
||||
field=models.CharField(blank=True, choices=[('ΔΙΑΚΟΣΜΗΣΗ', 'ΔΙΑΚΟΣΜΗΣΗ'), ('ΠΟΛΥΧΡΩΜΗ ΤΡΟΥΦΑ', 'ΠΟΛΥΧΡΩΜΗ ΤΡΟΥΦΑ'), ('ΧΡΩΜΑΤΙΣΤΗ ΤΡΟΥΦΑ', 'ΧΡΩΜΑΤΙΣΤΗ ΤΡΟΥΦΑ'), ('ΓΡΑΜΜΕΣ ΣΟΚΟΛΑΤΑΣ', 'ΓΡΑΜΜΕΣ ΣΟΚΟΛΑΤΑΣ'), ('ΆΛΛΟ', 'ΆΛΛΟ')], max_length=45, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='candy_bar_decor_other',
|
||||
field=models.CharField(blank=True, max_length=128, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='candy_bar_type',
|
||||
field=models.CharField(blank=True, choices=[('Cup cake με επικάλυψη και διακοσμητικά ζαχαρόπαστας', 'Cup cake με επικάλυψη και διακοσμητικά ζαχαρόπαστας'), ('Cup cakes με ζαχαρόπαστα και εκτύπωση', 'Cup cakes με ζαχαρόπαστα και εκτύπωση'), ('Cup cakes με χρωματιστή βουτυρόκρεμα', 'Cup cakes με χρωματιστή βουτυρόκρεμα'), ('Donuts με χρωματιστό γλάσσο', 'Donuts με χρωματιστό γλάσσο'), ('Pop cakes ', 'Pop cakes '), ('Μπισκότα με επικάλυψη ζαχαρόπαστας ', 'Μπισκότα με επικάλυψη ζαχαρόπαστας '), ('Μπισκότα με επικάλυψη και διακοσμητικά ζαχαρόπαστας', 'Μπισκότα με επικάλυψη και διακοσμητικά ζαχαρόπαστας'), ('Μπισκότα με επικάλυψη χρωματιστής σοκολάτας', 'Μπισκότα με επικάλυψη χρωματιστής σοκολάτας'), ('Μπισκότα σε σχήμα', 'Μπισκότα σε σχήμα'), ('Στρόγγυλα μπισκότα με επικάλυψη ζαχαρόπαστας και εκτύπωση ', 'Στρόγγυλα μπισκότα με επικάλυψη ζαχαρόπαστας και εκτύπωση '), ('Χωνάκι παγωτού με πολύχρωμα ζαχαρωτά τυλιγμένα σε ζελατίνα', 'Χωνάκι παγωτού με πολύχρωμα ζαχαρωτά τυλιγμένα σε ζελατίνα'), ('Μπεζεδάκια πολύχρωμα γεμιστά με κρέμα ', 'Μπεζεδάκια πολύχρωμα γεμιστά με κρέμα '), ('Μπολ με πολύχρωμα Marshmallows', 'Μπολ με πολύχρωμα Marshmallows'), ('Μπολ με κουφέτα ', 'Μπολ με κουφέτα '), ('Μπολ με μίνι σοκολάτες (Twix, Bueno, Derby, Lacta, Σοκοφρέτα)', 'Μπολ με μίνι σοκολάτες (Twix, Bueno, Derby, Lacta, Σοκοφρέτα)'), ('Μπολ με πολύχρωμους μπεζέδες', 'Μπολ με πολύχρωμους μπεζέδες'), ('Γλειφιτζούρια spiral (ροζ, γαλάζια)', 'Γλειφιτζούρια spiral (ροζ, γαλάζια)')], max_length=61, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='candy_bar_wrap',
|
||||
field=models.CharField(blank=True, choices=[('ΤΥΛΙΓΜΕΝΑ', 'ΤΥΛΙΓΜΕΝΑ'), ('ΑΤΥΛΙΧΤΑ', 'ΑΤΥΛΙΧΤΑ')], max_length=45, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='cup_color',
|
||||
field=models.CharField(blank=True, choices=[('ΛΕΥΚΟ', 'ΛΕΥΚΟ'), ('ΡΟΖ', 'ΡΟΖ'), ('ΣΙΕΛ', 'ΣΙΕΛ'), ('ΚΙΤΡΙΝΟ', 'ΚΙΤΡΙΝΟ'), ('ΠΡΑΣΙΝΟ', 'ΠΡΑΣΙΝΟ'), ('ΚΟΚΚΙΝΟ', 'ΚΟΚΚΙΝΟ'), ('ΜΠΛΕ', 'ΜΠΛΕ'), ('ΜΑΥΡΟ', 'ΜΑΥΡΟ'), ('ΣΕΡΑΝΟ', 'ΣΕΡΑΝΟ'), ('ΚΑΦΕ', 'ΚΑΦΕ'), ('ΒΕΡΑΜΑΝ', 'ΒΕΡΑΜΑΝ'), ('ΛΙΛΑ', 'ΛΙΛΑ'), ('ΦΟΥΞ', 'ΦΟΥΞ'), ('ΔΙΑΦΑΝΟ', 'ΔΙΑΦΑΝΟ'), ('ΆΛΛΟ', 'ΆΛΛΟ')], max_length=45, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='cup_color_other',
|
||||
field=models.CharField(blank=True, max_length=128, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='cup_flavor',
|
||||
field=models.CharField(blank=True, choices=[('Προφιτερόλ', 'Προφιτερόλ'), ('Εκμέκ', 'Εκμέκ'), ('Banoffee', 'Banoffee'), ('Τιραμισού Brownies', 'Τιραμισού Brownies'), ('Τσιζκεικ', 'Τσιζκεικ'), ('Lemon pie', 'Lemon pie'), ('Φερρέρο Brownies', 'Φερρέρο Brownies'), ('Μους Brownies', 'Μους Brownies'), ('Lila Pause', 'Lila Pause')], max_length=45, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='cup_type',
|
||||
field=models.CharField(blank=True, choices=[('ΚΥΠΕΛΛΟ', 'ΚΥΠΕΛΛΟ'), ('ΤΕΤΡΑΓΩΝΟ ', 'ΤΕΤΡΑΓΩΝΟ '), ('ΣΤΡΟΓΓΥΛΟ', 'ΣΤΡΟΓΓΥΛΟ'), ('ΣΦΗΝΑΚΙ', 'ΣΦΗΝΑΚΙ')], max_length=45, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='engagement_cake_base',
|
||||
field=models.CharField(blank=True, max_length=128, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='engagement_cake_glaze',
|
||||
field=models.CharField(blank=True, choices=[('ΓΛΑΣΣΟ', 'ΓΛΑΣΣΟ'), ('ΣΑΝΤΙΓΥ', 'ΣΑΝΤΙΓΥ')], max_length=45, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='engagement_cake_pcs_other',
|
||||
field=models.CharField(blank=True, max_length=128, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='engagement_cake_piecies',
|
||||
field=models.CharField(blank=True, choices=[('ΑΤΟΜΙΚΑ', 'ΑΤΟΜΙΚΑ'), ('ΚΥΠΕΛΛΟ', 'ΚΥΠΕΛΛΟ'), ('ΣΦΗΝΑΚΙ', 'ΣΦΗΝΑΚΙ'), ('ΆΛΛΟ', 'ΆΛΛΟ')], max_length=45, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='engagement_cake_type',
|
||||
field=models.CharField(blank=True, choices=[('ΑΡΡΑΒΩΝΑΣ', 'ΑΡΡΑΒΩΝΑΣ'), ('ΓΑΜΟΣ', 'ΓΑΜΟΣ')], max_length=45, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='fyt_color',
|
||||
field=models.CharField(blank=True, choices=[('ΛΕΥΚΟ', 'ΛΕΥΚΟ'), ('ΡΟΖ', 'ΡΟΖ'), ('ΣΙΕΛ', 'ΣΙΕΛ'), ('ΚΙΤΡΙΝΟ', 'ΚΙΤΡΙΝΟ'), ('ΠΡΑΣΙΝΟ', 'ΠΡΑΣΙΝΟ'), ('ΚΟΚΚΙΝΟ', 'ΚΟΚΚΙΝΟ'), ('ΜΠΛΕ', 'ΜΠΛΕ'), ('ΜΑΥΡΟ', 'ΜΑΥΡΟ'), ('ΣΕΡΑΝΟ', 'ΣΕΡΑΝΟ'), ('ΚΑΦΕ', 'ΚΑΦΕ'), ('ΒΕΡΑΜΑΝ', 'ΒΕΡΑΜΑΝ'), ('ΛΙΛΑ', 'ΛΙΛΑ'), ('ΦΟΥΞ', 'ΦΟΥΞ'), ('ΔΙΑΦΑΝΟ', 'ΔΙΑΦΑΝΟ'), ('ΆΛΛΟ', 'ΆΛΛΟ')], max_length=45, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='fyt_color_other',
|
||||
field=models.CharField(blank=True, max_length=128, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='info',
|
||||
field=models.CharField(blank=True, max_length=512, null=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-30 19:35
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0039_auto_20210430_2225'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RenameField(
|
||||
model_name='orderproduct',
|
||||
old_name='engagement_cake_piecies',
|
||||
new_name='engagement_cake_pcs',
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,20 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-30 20:17
|
||||
|
||||
import datetime
|
||||
from django.db import migrations, models
|
||||
from django.utils.timezone import utc
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0040_auto_20210430_2235'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='order',
|
||||
name='order_date',
|
||||
field=models.DateTimeField(default=datetime.datetime(2021, 4, 30, 20, 17, 31, 522831, tzinfo=utc)),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-30 20:23
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0041_auto_20210430_2317'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='order',
|
||||
name='order_date',
|
||||
field=models.DateTimeField(auto_now_add=True),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,25 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-30 21:00
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0042_auto_20210430_2323'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='orderproduct',
|
||||
name='cake_img',
|
||||
field=models.ImageField(default=1, upload_to='uploaded_images/'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='orderproduct',
|
||||
name='cream_cake_img',
|
||||
field=models.ImageField(default=1, upload_to='uploaded_images/'),
|
||||
preserve_default=False,
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,23 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-30 21:06
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0043_auto_20210501_0000'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='cake_img',
|
||||
field=models.ImageField(blank=True, null=True, upload_to='uploaded_images/'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='cream_cake_img',
|
||||
field=models.ImageField(blank=True, null=True, upload_to='uploaded_images/'),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,23 @@
|
||||
# Generated by Django 3.1.7 on 2021-04-30 21:32
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0044_auto_20210501_0006'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='cake_img',
|
||||
field=models.ImageField(blank=True, null=True, upload_to=''),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='cream_cake_img',
|
||||
field=models.ImageField(blank=True, null=True, upload_to=''),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,23 @@
|
||||
# Generated by Django 3.1.7 on 2021-05-01 04:54
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0045_auto_20210501_0032'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='cake_img',
|
||||
field=models.ImageField(blank=True, null=True, upload_to='media/'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='cream_cake_img',
|
||||
field=models.ImageField(blank=True, null=True, upload_to='media/'),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,28 @@
|
||||
# Generated by Django 3.1.7 on 2021-05-01 09:03
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0046_auto_20210501_0754'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='cake_img',
|
||||
field=models.ImageField(blank=True, null=True, upload_to=''),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='cake_type',
|
||||
field=models.CharField(blank=True, choices=[('KARDASIS', 'KARDASIS'), ('PAN DÉCOR', 'PAN DÉCOR'), ('ΦΩΤΟΓΡΑΦΙΑ', 'ΦΩΤΟΓΡΑΦΙΑ')], max_length=45, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='orderproduct',
|
||||
name='cream_cake_img',
|
||||
field=models.ImageField(blank=True, null=True, upload_to=''),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,44 @@
|
||||
# Generated by Django 3.1.7 on 2021-05-27 14:08
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('orders_app', '0047_auto_20210501_1203'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='order',
|
||||
name='customer',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='order',
|
||||
name='customer_address',
|
||||
field=models.CharField(blank=True, max_length=128),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='order',
|
||||
name='customer_email',
|
||||
field=models.CharField(blank=True, max_length=128),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='order',
|
||||
name='customer_name',
|
||||
field=models.CharField(default=1, max_length=128),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='order',
|
||||
name='customer_social_media',
|
||||
field=models.CharField(blank=True, max_length=128),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='order',
|
||||
name='customer_telephone',
|
||||
field=models.CharField(default=1, max_length=128),
|
||||
preserve_default=False,
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,228 @@
|
||||
from django.contrib.auth.models import User
|
||||
from django.core.validators import MinValueValidator, MaxValueValidator
|
||||
from django.db import models
|
||||
from phonenumber_field.modelfields import PhoneNumberField
|
||||
|
||||
|
||||
class Store(models.Model):
|
||||
name = models.CharField(max_length=128)
|
||||
address = models.CharField(max_length=128)
|
||||
telephone = PhoneNumberField()
|
||||
|
||||
def __str__(self):
|
||||
return f'{self.name}-{self.address}'
|
||||
|
||||
|
||||
class Product(models.Model):
|
||||
name = models.CharField(max_length=128)
|
||||
|
||||
# photo
|
||||
|
||||
def __str__(self):
|
||||
return f'{self.name}'
|
||||
|
||||
|
||||
class Customer(models.Model):
|
||||
name = models.CharField(max_length=128)
|
||||
address = models.CharField(max_length=128, blank=True)
|
||||
telephone = PhoneNumberField(blank=True)
|
||||
email = models.CharField(max_length=128, blank=True)
|
||||
social_media = models.CharField(max_length=128, blank=True)
|
||||
|
||||
def __str__(self):
|
||||
return f'{self.name}:{self.telephone}'
|
||||
|
||||
|
||||
class Order(models.Model):
|
||||
STATUS_OPTIONS = (
|
||||
('ΝΕΑ', 'ΝΕΑ'),
|
||||
('ΕΠΕ', 'ΥΠΟ ΕΠΕΞΕΡΓΑΣΙΑ'),
|
||||
('ΕΤΜ', 'ΕΤΟΙΜΗ'),
|
||||
)
|
||||
DELIVERY_OPTIONS = (
|
||||
('ΠΑΡΑΛΑΒΗ ΑΠΟ ΚΑΤΑΣΤΗΜΑ', 'ΠΑΡΑΛΑΒΗ ΑΠΟ ΚΑΤΑΣΤΗΜΑ'),
|
||||
('ΑΠΟΣΤΟΛΗ', 'ΑΠΟΣΤΟΛΗ'),
|
||||
)
|
||||
order_status = models.CharField(max_length=3, choices=STATUS_OPTIONS, default="ΝΕΑ")
|
||||
|
||||
customer_name = models.CharField(max_length=128)
|
||||
customer_address = models.CharField(max_length=128, blank=True)
|
||||
customer_telephone = models.CharField(max_length=128)
|
||||
customer_email = models.CharField(max_length=128, blank=True)
|
||||
customer_social_media = models.CharField(max_length=128, blank=True)
|
||||
|
||||
#customer = models.ForeignKey(Customer, on_delete=models.CASCADE)
|
||||
|
||||
order_date = models.DateTimeField(auto_now_add=True)
|
||||
delivery_date = models.DateField()
|
||||
delivery = models.CharField(max_length=45, choices=DELIVERY_OPTIONS, default="ΠΑΡΑΛΑΒΗ ΑΠΟ ΚΑΤΑΣΤΗΜΑ")
|
||||
store = models.ForeignKey(Store, on_delete=models.CASCADE)
|
||||
order_products = models.ManyToManyField('Product', through='OrderProduct', related_name='+', blank=True)
|
||||
order_info = models.CharField(max_length=512, blank=True)
|
||||
|
||||
def __str__(self):
|
||||
return f'{self.id}:{self.customer_name, self.customer_telephone}, {self.store}, {self.order_date.strftime("%d/%m/%Y %H:%M")}, {self.delivery_date.strftime("%d/%m/%Y")}'
|
||||
|
||||
|
||||
class OrderProduct(models.Model):
|
||||
CAKE_TYPES = (
|
||||
('KARDASIS', 'KARDASIS'),
|
||||
('PAN DÉCOR', 'PAN DÉCOR'),
|
||||
('ΦΩΤΟΓΡΑΦΙΑ', 'ΦΩΤΟΓΡΑΦΙΑ'),
|
||||
)
|
||||
|
||||
COLOR_OPTIONS = (
|
||||
('ΛΕΥΚΟ', 'ΛΕΥΚΟ'),
|
||||
('ΡΟΖ', 'ΡΟΖ'),
|
||||
('ΣΙΕΛ', 'ΣΙΕΛ'),
|
||||
('ΚΙΤΡΙΝΟ', 'ΚΙΤΡΙΝΟ'),
|
||||
('ΠΡΑΣΙΝΟ', 'ΠΡΑΣΙΝΟ'),
|
||||
('ΚΟΚΚΙΝΟ', 'ΚΟΚΚΙΝΟ'),
|
||||
('ΜΠΛΕ', 'ΜΠΛΕ'),
|
||||
('ΜΑΥΡΟ', 'ΜΑΥΡΟ'),
|
||||
('ΣΕΡΑΝΟ', 'ΣΕΡΑΝΟ'),
|
||||
('ΚΑΦΕ', 'ΚΑΦΕ'),
|
||||
('ΒΕΡΑΜΑΝ', 'ΒΕΡΑΜΑΝ'),
|
||||
('ΛΙΛΑ', 'ΛΙΛΑ'),
|
||||
('ΦΟΥΞ', 'ΦΟΥΞ'),
|
||||
('ΔΙΑΦΑΝΟ', 'ΔΙΑΦΑΝΟ'),
|
||||
('ΆΛΛΟ', 'ΆΛΛΟ'),
|
||||
)
|
||||
|
||||
CAKE_FLAVORS = (
|
||||
('Ανάμεικτη', 'Ανάμεικτη '),
|
||||
('Αγριοκέρασο', 'Αγριοκέρασο'),
|
||||
('Ανάμεικτη Αγριοκέρασο', 'Ανάμεικτη Αγριοκέρασο'),
|
||||
('Μπισκότο', 'Μπισκότο'),
|
||||
('Oreo', 'Oreo'),
|
||||
('Kinder', 'Kinder'),
|
||||
('Σοκολάτα Φράουλα', 'Σοκολάτα Φράουλα'),
|
||||
('Ferrero', 'Ferrero'),
|
||||
('Nutella', 'Nutella'),
|
||||
('Σοκολάτα Μπισκότο', 'Σοκολάτα Μπισκότο'),
|
||||
('Λεμονί', 'Λεμονί'),
|
||||
('Μπανάνα', 'Μπανάνα '),
|
||||
('Σοκολατίνα', 'Σοκολατίνα'),
|
||||
('Τιραμισού', 'Τιραμισού'),
|
||||
('Φράουλα Κρέμα', 'Φράουλα Κρέμα'),
|
||||
('Δούκισσα μπισκότο', 'Δούκισσα μπισκότο'),
|
||||
('Καραμέλα', 'Καραμέλα'),
|
||||
('Ανάμεικτη Σαμπάνια', 'Ανάμεικτη Σαμπάνια'),
|
||||
('Γιαούρτι Ανανάς', 'Γιαούρτι Ανανάς '),
|
||||
)
|
||||
|
||||
CUP_FLAVORS = (
|
||||
('Προφιτερόλ', 'Προφιτερόλ'),
|
||||
('Εκμέκ', 'Εκμέκ'),
|
||||
('Banoffee', 'Banoffee'),
|
||||
('Τιραμισού Brownies', 'Τιραμισού Brownies'),
|
||||
('Τσιζκεικ', 'Τσιζκεικ'),
|
||||
('Lemon pie', 'Lemon pie'),
|
||||
('Φερρέρο Brownies', 'Φερρέρο Brownies'),
|
||||
('Μους Brownies', 'Μους Brownies'),
|
||||
('Lila Pause', 'Lila Pause'),
|
||||
)
|
||||
|
||||
CUP_TYPES = (
|
||||
('ΚΥΠΕΛΛΟ', 'ΚΥΠΕΛΛΟ'),
|
||||
('ΤΕΤΡΑΓΩΝΟ ', 'ΤΕΤΡΑΓΩΝΟ '),
|
||||
('ΣΤΡΟΓΓΥΛΟ', 'ΣΤΡΟΓΓΥΛΟ'),
|
||||
('ΣΦΗΝΑΚΙ', 'ΣΦΗΝΑΚΙ'),
|
||||
)
|
||||
|
||||
|
||||
CANDY_BAR_TYPE = (
|
||||
('Cup cake με επικάλυψη και διακοσμητικά ζαχαρόπαστας', 'Cup cake με επικάλυψη και διακοσμητικά ζαχαρόπαστας'),
|
||||
('Cup cakes με ζαχαρόπαστα και εκτύπωση', 'Cup cakes με ζαχαρόπαστα και εκτύπωση'),
|
||||
('Cup cakes με χρωματιστή βουτυρόκρεμα', 'Cup cakes με χρωματιστή βουτυρόκρεμα'),
|
||||
('Donuts με χρωματιστό γλάσσο', 'Donuts με χρωματιστό γλάσσο'),
|
||||
('Pop cakes ', 'Pop cakes '),
|
||||
('Μπισκότα με επικάλυψη ζαχαρόπαστας ', 'Μπισκότα με επικάλυψη ζαχαρόπαστας '),
|
||||
('Μπισκότα με επικάλυψη και διακοσμητικά ζαχαρόπαστας', 'Μπισκότα με επικάλυψη και διακοσμητικά ζαχαρόπαστας'),
|
||||
('Μπισκότα με επικάλυψη χρωματιστής σοκολάτας', 'Μπισκότα με επικάλυψη χρωματιστής σοκολάτας'),
|
||||
('Μπισκότα σε σχήμα', 'Μπισκότα σε σχήμα'),
|
||||
('Στρόγγυλα μπισκότα με επικάλυψη ζαχαρόπαστας και εκτύπωση ', 'Στρόγγυλα μπισκότα με επικάλυψη ζαχαρόπαστας και εκτύπωση '),
|
||||
('Χωνάκι παγωτού με πολύχρωμα ζαχαρωτά τυλιγμένα σε ζελατίνα', 'Χωνάκι παγωτού με πολύχρωμα ζαχαρωτά τυλιγμένα σε ζελατίνα'),
|
||||
('Μπεζεδάκια πολύχρωμα γεμιστά με κρέμα ', 'Μπεζεδάκια πολύχρωμα γεμιστά με κρέμα '),
|
||||
('Μπολ με πολύχρωμα Marshmallows', 'Μπολ με πολύχρωμα Marshmallows'),
|
||||
('Μπολ με κουφέτα ', 'Μπολ με κουφέτα '),
|
||||
('Μπολ με μίνι σοκολάτες (Twix, Bueno, Derby, Lacta, Σοκοφρέτα)', 'Μπολ με μίνι σοκολάτες (Twix, Bueno, Derby, Lacta, Σοκοφρέτα)'),
|
||||
('Μπολ με πολύχρωμους μπεζέδες', 'Μπολ με πολύχρωμους μπεζέδες'),
|
||||
('Γλειφιτζούρια spiral (ροζ, γαλάζια)', 'Γλειφιτζούρια spiral (ροζ, γαλάζια)'),
|
||||
)
|
||||
|
||||
CANDY_BAR_DECOR = (
|
||||
('ΔΙΑΚΟΣΜΗΣΗ', 'ΔΙΑΚΟΣΜΗΣΗ'),
|
||||
('ΠΟΛΥΧΡΩΜΗ ΤΡΟΥΦΑ', 'ΠΟΛΥΧΡΩΜΗ ΤΡΟΥΦΑ'),
|
||||
('ΧΡΩΜΑΤΙΣΤΗ ΤΡΟΥΦΑ', 'ΧΡΩΜΑΤΙΣΤΗ ΤΡΟΥΦΑ'),
|
||||
('ΓΡΑΜΜΕΣ ΣΟΚΟΛΑΤΑΣ', 'ΓΡΑΜΜΕΣ ΣΟΚΟΛΑΤΑΣ'),
|
||||
('ΆΛΛΟ', 'ΆΛΛΟ'),
|
||||
)
|
||||
|
||||
CANDY_BAR_WRAP = (
|
||||
('ΤΥΛΙΓΜΕΝΑ', 'ΤΥΛΙΓΜΕΝΑ'),
|
||||
('ΑΤΥΛΙΧΤΑ', 'ΑΤΥΛΙΧΤΑ'),
|
||||
)
|
||||
|
||||
CREAM_3D = (
|
||||
('ΝΑΙ', 'ΝΑΙ'),
|
||||
('ΟΧΙ', 'ΟΧΙ'),
|
||||
)
|
||||
|
||||
ENGAMENT_TYPE = (
|
||||
('ΑΡΡΑΒΩΝΑΣ', 'ΑΡΡΑΒΩΝΑΣ'),
|
||||
('ΓΑΜΟΣ', 'ΓΑΜΟΣ'),
|
||||
)
|
||||
|
||||
ENGAMENT_CAKE_PIECES = (
|
||||
('ΑΤΟΜΙΚΑ', 'ΑΤΟΜΙΚΑ'),
|
||||
('ΚΥΠΕΛΛΟ', 'ΚΥΠΕΛΛΟ'),
|
||||
('ΣΦΗΝΑΚΙ', 'ΣΦΗΝΑΚΙ'),
|
||||
('ΆΛΛΟ', 'ΆΛΛΟ'),
|
||||
)
|
||||
|
||||
ENGAMENT_CAKE_GLAZE = (
|
||||
('ΓΛΑΣΣΟ', 'ΓΛΑΣΣΟ'),
|
||||
('ΣΑΝΤΙΓΥ', 'ΣΑΝΤΙΓΥ'),
|
||||
)
|
||||
|
||||
order = models.ForeignKey(Order, on_delete=models.CASCADE)
|
||||
product = models.ForeignKey(Product, on_delete=models.CASCADE)
|
||||
amount = models.FloatField(validators=[MinValueValidator(0.01), MaxValueValidator(999)])
|
||||
|
||||
#az = 'ΚΙΛΑ ΓΕΥΣΗ KARDASIS Νο ΧΡΩΜΑ ΦΥΤΙΛΑΚΙ ΠΑΡΑΤΗΡΗΣΕΙΣ'
|
||||
cake_type = models.CharField(max_length=45, choices=CAKE_TYPES, blank=True, null=True)
|
||||
cake_type_num = models.FloatField(max_length=128, default="0", blank=True, null=True)
|
||||
cake_color = models.CharField(max_length=45, choices=COLOR_OPTIONS, blank=True, null=True)
|
||||
cake_color_other = models.CharField(max_length=128, blank=True, null=True)
|
||||
fyt_color = models.CharField(max_length=45, choices=COLOR_OPTIONS, blank=True, null=True)
|
||||
fyt_color_other = models.CharField(max_length=128, blank=True, null=True)
|
||||
cake_flavor = models.CharField(max_length=45, choices=CAKE_FLAVORS, blank=True, null=True)
|
||||
cake_img = models.ImageField(blank=True, null=True)
|
||||
#az = 'ΜΕΓΕΘΟΣ ΥΨΟΣ ΓΕΥΣΗ ΠΑΡΑΤΗΡΗΣΕΙΣ'
|
||||
cream_cake_3d = models.CharField(max_length=45, choices=CREAM_3D, default="ΟΧΙ", blank=True)
|
||||
cream_cake_height = models.FloatField(max_length=128, default="0", blank=True, null=True)
|
||||
cream_cake_img = models.ImageField(blank=True, null=True)
|
||||
|
||||
#az = 'ΓΑΜΟΣ ΒΑΣΗ ΤΕΜΑΧΙΑ ΓΕΥΣΗ ΠΑΡΑΤΗΡΗΣΕΙΣ'
|
||||
engagement_cake_type = models.CharField(max_length=45, choices=ENGAMENT_TYPE, blank=True, null=True)
|
||||
engagement_cake_base = models.CharField(max_length=128, blank=True, null=True)
|
||||
engagement_cake_pcs = models.CharField(max_length=45, choices=ENGAMENT_CAKE_PIECES, blank=True, null=True)
|
||||
engagement_cake_pcs_other = models.CharField(max_length=128, blank=True, null=True)
|
||||
engagement_cake_glaze = models.CharField(max_length=45, choices=ENGAMENT_CAKE_GLAZE, blank=True, null=True)
|
||||
|
||||
#az = 'ΤΕΜΑΧΙΑ ΓΕΥΣΗ ΚΥΠΕΛΛΟ ΧΡΩΜΑ ΤΕΜΑΧΙΑ ΧΡΩΜΑ ΔΙΑΚΟΣΜΗΣΗ ΤΥΛΙΓΜΕΝΑ ΠΑΡΑΤΗΡΗΣΕΙΣ'
|
||||
cup_flavor = models.CharField(max_length=45, choices=CUP_FLAVORS, blank=True, null=True)
|
||||
cup_color = models.CharField(max_length=45, choices=COLOR_OPTIONS, blank=True, null=True)
|
||||
cup_color_other = models.CharField(max_length=128, blank=True, null=True)
|
||||
cup_type = models.CharField(max_length=45, choices=CUP_TYPES, blank=True, null=True)
|
||||
|
||||
candy_bar_type = models.CharField(max_length=61, choices=CANDY_BAR_TYPE, blank=True, null=True)
|
||||
candy_bar_decor = models.CharField(max_length=45, choices=CANDY_BAR_DECOR, blank=True, null=True)
|
||||
candy_bar_decor_other = models.CharField(max_length=128, blank=True, null=True)
|
||||
candy_bar_wrap = models.CharField(max_length=45, choices=CANDY_BAR_WRAP, blank=True, null=True)
|
||||
|
||||
info = models.CharField(max_length=512, blank=True, null=True)
|
||||
|
||||
def __str__(self):
|
||||
return f'{self.product}'
|
||||
@@ -0,0 +1,56 @@
|
||||
from django.contrib.auth.models import User
|
||||
from django.db import models
|
||||
from phonenumber_field.modelfields import PhoneNumberField
|
||||
|
||||
|
||||
class Store(models.Model):
|
||||
name = models.CharField(max_length=128)
|
||||
address = models.CharField(max_length=128)
|
||||
telephone = PhoneNumberField()
|
||||
|
||||
def __str__(self):
|
||||
return f'{self.name} - {self.address}'
|
||||
|
||||
|
||||
class Product(models.Model):
|
||||
name = models.CharField(max_length=128)
|
||||
|
||||
def __str__(self):
|
||||
return f'{self.name}'
|
||||
|
||||
|
||||
class Customer(models.Model):
|
||||
name = models.CharField(max_length=128)
|
||||
address = models.CharField(max_length=128, blank=True)
|
||||
telephone = PhoneNumberField(blank=True)
|
||||
social_media = models.CharField(max_length=128, blank=True)
|
||||
|
||||
def __str__(self):
|
||||
return f'{self.name}:{self.telephone}'
|
||||
|
||||
|
||||
class Order(models.Model):
|
||||
#order_id = models.CharField(max_length=32)
|
||||
customer = models.ForeignKey(Customer, on_delete=models.CASCADE)
|
||||
order_date = models.DateField()
|
||||
delivery_date = models.DateField()
|
||||
store = models.ForeignKey(Store, on_delete=models.CASCADE)
|
||||
order_products = models.ManyToManyField('Product', through='OrderProduct', related_name='+', blank=True)
|
||||
|
||||
def __str__(self):
|
||||
return f'{self.id}:{self.customer.name}, {self.store}, {self.order_date}, {self.delivery_date}'
|
||||
|
||||
|
||||
class OrderProduct(models.Model):
|
||||
order = models.ForeignKey(Order, on_delete=models.CASCADE)
|
||||
product = models.ForeignKey(Product, on_delete=models.CASCADE)
|
||||
#type = models.ForeignKey(Product, on_delete=models.CASCADE)
|
||||
#name = models.CharField(max_length=128)
|
||||
amount = models.FloatField()
|
||||
color1 = models.CharField(max_length=128, blank=True)
|
||||
color2 = models.CharField(max_length=128, blank=True)
|
||||
info = models.CharField(max_length=512, blank=True)
|
||||
|
||||
def __str__(self):
|
||||
return f'{self.product}'
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
from django import forms
|
||||
from popup_field.views import PopupCRUDViewSet
|
||||
|
||||
from .models import *
|
||||
|
||||
|
||||
class StoreForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = Store
|
||||
fields = ['name', 'address', 'telephone']
|
||||
|
||||
|
||||
class StorePopupCRUDViewSet(PopupCRUDViewSet):
|
||||
model = Store
|
||||
form_class = StoreForm
|
||||
template_name_create = 'popup/create.html'
|
||||
template_name_update = 'popup/update.html'
|
||||
|
||||
|
||||
@@ -0,0 +1,250 @@
|
||||
/**
|
||||
* jQuery Formset 1.5-pre
|
||||
* @author Stanislaus Madueke (stan DOT madueke AT gmail DOT com)
|
||||
* @requires jQuery 1.2.6 or later
|
||||
*
|
||||
* Copyright (c) 2009, Stanislaus Madueke
|
||||
* All rights reserved.
|
||||
*
|
||||
* Licensed under the New BSD License
|
||||
* See: http://www.opensource.org/licenses/bsd-license.php
|
||||
*/
|
||||
;(function($) {
|
||||
$.fn.formset = function(opts)
|
||||
{
|
||||
var options = $.extend({}, $.fn.formset.defaults, opts),
|
||||
flatExtraClasses = options.extraClasses.join(' '),
|
||||
totalForms = $('#id_' + options.prefix + '-TOTAL_FORMS'),
|
||||
maxForms = $('#id_' + options.prefix + '-MAX_NUM_FORMS'),
|
||||
minForms = $('#id_' + options.prefix + '-MIN_NUM_FORMS'),
|
||||
childElementSelector = 'input,select,textarea,label,div',
|
||||
$$ = $(this),
|
||||
|
||||
applyExtraClasses = function(row, ndx) {
|
||||
if (options.extraClasses) {
|
||||
row.removeClass(flatExtraClasses);
|
||||
row.addClass(options.extraClasses[ndx % options.extraClasses.length]);
|
||||
}
|
||||
},
|
||||
|
||||
updateElementIndex = function(elem, prefix, ndx) {
|
||||
var idRegex = new RegExp(prefix + '-(\\d+|__prefix__)-'),
|
||||
replacement = prefix + '-' + ndx + '-';
|
||||
if (elem.attr("for")) elem.attr("for", elem.attr("for").replace(idRegex, replacement));
|
||||
if (elem.attr('id')) elem.attr('id', elem.attr('id').replace(idRegex, replacement));
|
||||
if (elem.attr('name')) elem.attr('name', elem.attr('name').replace(idRegex, replacement));
|
||||
},
|
||||
|
||||
hasChildElements = function(row) {
|
||||
return row.find(childElementSelector).length > 0;
|
||||
},
|
||||
|
||||
showAddButton = function() {
|
||||
return maxForms.length == 0 || // For Django versions pre 1.2
|
||||
(maxForms.val() == '' || (maxForms.val() - totalForms.val() > 0));
|
||||
},
|
||||
|
||||
/**
|
||||
* Indicates whether delete link(s) can be displayed - when total forms > min forms
|
||||
*/
|
||||
showDeleteLinks = function() {
|
||||
return minForms.length == 0 || // For Django versions pre 1.7
|
||||
(minForms.val() == '' || (totalForms.val() - minForms.val() > 0));
|
||||
},
|
||||
|
||||
insertDeleteLink = function(row) {
|
||||
var delCssSelector = $.trim(options.deleteCssClass).replace(/\s+/g, '.'),
|
||||
addCssSelector = $.trim(options.addCssClass).replace(/\s+/g, '.');
|
||||
|
||||
var delButtonHTML = '<a class="' + options.deleteCssClass + '" href="javascript:void(0)">' + options.deleteText +'</a>';
|
||||
if (options.deleteContainerClass) {
|
||||
// If we have a specific container for the remove button,
|
||||
// place it as the last child of that container:
|
||||
row.find('[class*="' + options.deleteContainerClass + '"]').append(delButtonHTML);
|
||||
} else if (row.is('TR')) {
|
||||
// If the forms are laid out in table rows, insert
|
||||
// the remove button into the last table cell:
|
||||
row.children(':last').append(delButtonHTML);
|
||||
} else if (row.is('UL') || row.is('OL')) {
|
||||
// If they're laid out as an ordered/unordered list,
|
||||
// insert an <li> after the last list item:
|
||||
row.append('<li>' + delButtonHTML + '</li>');
|
||||
} else {
|
||||
// Otherwise, just insert the remove button as the
|
||||
// last child element of the form's container:
|
||||
row.append(delButtonHTML);
|
||||
}
|
||||
|
||||
// Check if we're under the minimum number of forms - not to display delete link at rendering
|
||||
if (!showDeleteLinks()){
|
||||
row.find('a.' + delCssSelector).hide();
|
||||
}
|
||||
|
||||
row.find('a.' + delCssSelector).click(function() {
|
||||
var row = $(this).parents('.' + options.formCssClass),
|
||||
del = row.find('input:hidden[id $= "-DELETE"]'),
|
||||
buttonRow = row.siblings("a." + addCssSelector + ', .' + options.formCssClass + '-add'),
|
||||
forms;
|
||||
if (del.length) {
|
||||
// We're dealing with an inline formset.
|
||||
// Rather than remove this form from the DOM, we'll mark it as deleted
|
||||
// and hide it, then let Django handle the deleting:
|
||||
del.val('on');
|
||||
row.hide();
|
||||
forms = $('.' + options.formCssClass).not(':hidden');
|
||||
totalForms.val(forms.length);
|
||||
} else {
|
||||
row.remove();
|
||||
// Update the TOTAL_FORMS count:
|
||||
forms = $('.' + options.formCssClass).not('.formset-custom-template');
|
||||
totalForms.val(forms.length);
|
||||
}
|
||||
for (var i=0, formCount=forms.length; i<formCount; i++) {
|
||||
// Apply `extraClasses` to form rows so they're nicely alternating:
|
||||
applyExtraClasses(forms.eq(i), i);
|
||||
if (!del.length) {
|
||||
// Also update names and IDs for all child controls (if this isn't
|
||||
// a delete-able inline formset) so they remain in sequence:
|
||||
forms.eq(i).find(childElementSelector).each(function() {
|
||||
updateElementIndex($(this), options.prefix, i);
|
||||
});
|
||||
}
|
||||
}
|
||||
// Check if we've reached the minimum number of forms - hide all delete link(s)
|
||||
if (!showDeleteLinks()){
|
||||
$('a.' + delCssSelector).each(function(){$(this).hide();});
|
||||
}
|
||||
// Check if we need to show the add button:
|
||||
if (buttonRow.is(':hidden') && showAddButton()) buttonRow.show();
|
||||
// If a post-delete callback was provided, call it with the deleted form:
|
||||
if (options.removed) options.removed(row);
|
||||
return false;
|
||||
});
|
||||
};
|
||||
|
||||
$$.each(function(i) {
|
||||
var row = $(this),
|
||||
del = row.find('input:checkbox[id $= "-DELETE"]');
|
||||
if (del.length) {
|
||||
// If you specify "can_delete = True" when creating an inline formset,
|
||||
// Django adds a checkbox to each form in the formset.
|
||||
// Replace the default checkbox with a hidden field:
|
||||
if (del.is(':checked')) {
|
||||
// If an inline formset containing deleted forms fails validation, make sure
|
||||
// we keep the forms hidden (thanks for the bug report and suggested fix Mike)
|
||||
del.before('<input type="hidden" name="' + del.attr('name') +'" id="' + del.attr('id') +'" value="on" />');
|
||||
row.hide();
|
||||
} else {
|
||||
del.before('<input type="hidden" name="' + del.attr('name') +'" id="' + del.attr('id') +'" />');
|
||||
}
|
||||
// Hide any labels associated with the DELETE checkbox:
|
||||
$('label[for="' + del.attr('id') + '"]').hide();
|
||||
del.remove();
|
||||
}
|
||||
if (hasChildElements(row)) {
|
||||
row.addClass(options.formCssClass);
|
||||
if (row.is(':visible')) {
|
||||
insertDeleteLink(row);
|
||||
applyExtraClasses(row, i);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if ($$.length) {
|
||||
var hideAddButton = !showAddButton(),
|
||||
addButton, template;
|
||||
if (options.formTemplate) {
|
||||
// If a form template was specified, we'll clone it to generate new form instances:
|
||||
template = (options.formTemplate instanceof $) ? options.formTemplate : $(options.formTemplate);
|
||||
template.removeAttr('id').addClass(options.formCssClass + ' formset-custom-template');
|
||||
template.find(childElementSelector).each(function() {
|
||||
updateElementIndex($(this), options.prefix, '__prefix__');
|
||||
});
|
||||
insertDeleteLink(template);
|
||||
} else {
|
||||
// Otherwise, use the last form in the formset; this works much better if you've got
|
||||
// extra (>= 1) forms (thnaks to justhamade for pointing this out):
|
||||
if (options.hideLastAddForm) $('.' + options.formCssClass + ':last').hide();
|
||||
template = $('.' + options.formCssClass + ':last').clone(true).removeAttr('id');
|
||||
template.find('input:hidden[id $= "-DELETE"]').remove();
|
||||
// Clear all cloned fields, except those the user wants to keep (thanks to brunogola for the suggestion):
|
||||
template.find(childElementSelector).not(options.keepFieldValues).each(function() {
|
||||
var elem = $(this);
|
||||
// If this is a checkbox or radiobutton, uncheck it.
|
||||
// This fixes Issue 1, reported by Wilson.Andrew.J:
|
||||
if (elem.is('input:checkbox') || elem.is('input:radio')) {
|
||||
elem.attr('checked', false);
|
||||
} else {
|
||||
elem.val('');
|
||||
}
|
||||
});
|
||||
}
|
||||
// FIXME: Perhaps using $.data would be a better idea?
|
||||
options.formTemplate = template;
|
||||
|
||||
var addButtonHTML = '<a class="' + options.addCssClass + '" href="javascript:void(0)">' + options.addText + '</a>';
|
||||
if (options.addContainerClass) {
|
||||
// If we have a specific container for the "add" button,
|
||||
// place it as the last child of that container:
|
||||
var addContainer = $('[class*="' + options.addContainerClass + '"');
|
||||
addContainer.append(addButtonHTML);
|
||||
addButton = addContainer.find('[class="' + options.addCssClass + '"]');
|
||||
} else if ($$.is('TR')) {
|
||||
// If forms are laid out as table rows, insert the
|
||||
// "add" button in a new table row:
|
||||
var numCols = $$.eq(0).children().length, // This is a bit of an assumption :|
|
||||
buttonRow = $('<tr><td colspan="' + numCols + '">' + addButtonHTML + '</tr>').addClass(options.formCssClass + '-add');
|
||||
$$.parent().append(buttonRow);
|
||||
addButton = buttonRow.find('a');
|
||||
} else {
|
||||
// Otherwise, insert it immediately after the last form:
|
||||
$$.filter(':last').after(addButtonHTML);
|
||||
addButton = $$.filter(':last').next();
|
||||
}
|
||||
|
||||
if (hideAddButton) addButton.hide();
|
||||
|
||||
addButton.click(function() {
|
||||
var formCount = parseInt(totalForms.val()),
|
||||
row = options.formTemplate.clone(true).removeClass('formset-custom-template'),
|
||||
buttonRow = $($(this).parents('tr.' + options.formCssClass + '-add').get(0) || this),
|
||||
delCssSelector = $.trim(options.deleteCssClass).replace(/\s+/g, '.');
|
||||
applyExtraClasses(row, formCount);
|
||||
row.insertBefore(buttonRow).show();
|
||||
row.find(childElementSelector).each(function() {
|
||||
updateElementIndex($(this), options.prefix, formCount);
|
||||
});
|
||||
totalForms.val(formCount + 1);
|
||||
// Check if we're above the minimum allowed number of forms -> show all delete link(s)
|
||||
if (showDeleteLinks()){
|
||||
$('a.' + delCssSelector).each(function(){$(this).show();});
|
||||
}
|
||||
// Check if we've exceeded the maximum allowed number of forms:
|
||||
if (!showAddButton()) buttonRow.hide();
|
||||
// If a post-add callback was supplied, call it with the added form:
|
||||
if (options.added) options.added(row);
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
return $$;
|
||||
};
|
||||
|
||||
/* Setup plugin defaults */
|
||||
$.fn.formset.defaults = {
|
||||
prefix: 'form', // The form prefix for your django formset
|
||||
formTemplate: null, // The jQuery selection cloned to generate new form instances
|
||||
addText: 'add another', // Text for the add link
|
||||
deleteText: 'remove', // Text for the delete link
|
||||
addContainerClass: null, // Container CSS class for the add link
|
||||
deleteContainerClass: null, // Container CSS class for the delete link
|
||||
addCssClass: 'add-row', // CSS class applied to the add link
|
||||
deleteCssClass: 'delete-row', // CSS class applied to the delete link
|
||||
formCssClass: 'dynamic-form', // CSS class applied to each form in a formset
|
||||
extraClasses: [], // Additional CSS classes, which will be applied to each form in turn
|
||||
keepFieldValues: '', // jQuery selector for fields whose values should be kept when the form is cloned
|
||||
added: null, // Function called each time a new form is added
|
||||
removed: null, // Function called each time a form is deleted
|
||||
hideLastAddForm: false // When set to true, hide last empty add form (becomes visible when clicking on add button)
|
||||
};
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,235 @@
|
||||
/**
|
||||
* jQuery Formset 1.5-pre
|
||||
* @author Stanislaus Madueke (stan DOT madueke AT gmail DOT com)
|
||||
* @requires jQuery 1.2.6 or later
|
||||
*
|
||||
* Copyright (c) 2009, Stanislaus Madueke
|
||||
* All rights reserved.
|
||||
*
|
||||
* Licensed under the New BSD License
|
||||
* See: http://www.opensource.org/licenses/bsd-license.php
|
||||
*/
|
||||
;(function($) {
|
||||
$.fn.formset = function(opts)
|
||||
{
|
||||
var options = $.extend({}, $.fn.formset.defaults, opts),
|
||||
flatExtraClasses = options.extraClasses.join(' '),
|
||||
totalForms = $('#id_' + options.prefix + '-TOTAL_FORMS'),
|
||||
maxForms = $('#id_' + options.prefix + '-MAX_NUM_FORMS'),
|
||||
minForms = $('#id_' + options.prefix + '-MIN_NUM_FORMS'),
|
||||
childElementSelector = 'input,select,textarea,label,div',
|
||||
$$ = $(this),
|
||||
|
||||
applyExtraClasses = function(row, ndx) {
|
||||
if (options.extraClasses) {
|
||||
row.removeClass(flatExtraClasses);
|
||||
row.addClass(options.extraClasses[ndx % options.extraClasses.length]);
|
||||
}
|
||||
},
|
||||
|
||||
updateElementIndex = function(elem, prefix, ndx) {
|
||||
var idRegex = new RegExp(prefix + '-(\\d+|__prefix__)-'),
|
||||
replacement = prefix + '-' + ndx + '-';
|
||||
if (elem.attr("for")) elem.attr("for", elem.attr("for").replace(idRegex, replacement));
|
||||
if (elem.attr('id')) elem.attr('id', elem.attr('id').replace(idRegex, replacement));
|
||||
if (elem.attr('name')) elem.attr('name', elem.attr('name').replace(idRegex, replacement));
|
||||
},
|
||||
|
||||
hasChildElements = function(row) {
|
||||
return row.find(childElementSelector).length > 0;
|
||||
},
|
||||
|
||||
showAddButton = function() {
|
||||
return maxForms.length == 0 || // For Django versions pre 1.2
|
||||
(maxForms.val() == '' || (maxForms.val() - totalForms.val() > 0));
|
||||
},
|
||||
|
||||
/**
|
||||
* Indicates whether delete link(s) can be displayed - when total forms > min forms
|
||||
*/
|
||||
showDeleteLinks = function() {
|
||||
return minForms.length == 0 || // For Django versions pre 1.7
|
||||
(minForms.val() == '' || (totalForms.val() - minForms.val() > 0));
|
||||
},
|
||||
|
||||
insertDeleteLink = function(row) {
|
||||
var delCssSelector = $.trim(options.deleteCssClass).replace(/\s+/g, '.'),
|
||||
addCssSelector = $.trim(options.addCssClass).replace(/\s+/g, '.');
|
||||
|
||||
var delButtonHTML = '<a class="' + options.deleteCssClass + '" href="javascript:void(0)">' + options.deleteText +'</a>';
|
||||
if (options.deleteContainerClass) {
|
||||
// If we have a specific container for the remove button,
|
||||
// place it as the last child of that container:
|
||||
row.find('[class*="' + options.deleteContainerClass + '"]').append(delButtonHTML);
|
||||
} else if (row.is('TR')) {
|
||||
// If the forms are laid out in table rows, insert
|
||||
// the remove button into the last table cell:
|
||||
row.children(':last').append(delButtonHTML);
|
||||
} else if (row.is('UL') || row.is('OL')) {
|
||||
// If they're laid out as an ordered/unordered list,
|
||||
// insert an <li> after the last list item:
|
||||
row.append('<li>' + delButtonHTML + '</li>');
|
||||
} else {
|
||||
// Otherwise, just insert the remove button as the
|
||||
// last child element of the form's container:
|
||||
row.append(delButtonHTML);
|
||||
}
|
||||
|
||||
// Check if we're under the minimum number of forms - not to display delete link at rendering
|
||||
if (!showDeleteLinks()){
|
||||
row.find('a.' + delCssSelector).hide();
|
||||
}
|
||||
|
||||
row.find('a.' + delCssSelector).click(function() {
|
||||
var row = $(this).parents('.' + options.formCssClass),
|
||||
del = row.find('input:hidden[id $= "-DELETE"]'),
|
||||
buttonRow = row.siblings("a." + addCssSelector + ', .' + options.formCssClass + '-add'),
|
||||
forms;
|
||||
if (del.length) {
|
||||
// We're dealing with an inline formset.
|
||||
// Rather than remove this form from the DOM, we'll mark it as deleted
|
||||
// and hide it, then let Django handle the deleting:
|
||||
del.val('on');
|
||||
row.hide();
|
||||
forms = $('.' + options.formCssClass).not(':hidden');
|
||||
totalForms.val(forms.length);
|
||||
} else {
|
||||
row.remove();
|
||||
// Update the TOTAL_FORMS count:
|
||||
forms = $('.' + options.formCssClass).not('.formset-custom-template');
|
||||
totalForms.val(forms.length);
|
||||
}
|
||||
for (var i=0, formCount=forms.length; i<formCount; i++) {
|
||||
// Apply `extraClasses` to form rows so they're nicely alternating:
|
||||
applyExtraClasses(forms.eq(i), i);
|
||||
if (!del.length) {
|
||||
// Also update names and IDs for all child controls (if this isn't
|
||||
// a delete-able inline formset) so they remain in sequence:
|
||||
forms.eq(i).find(childElementSelector).each(function() {
|
||||
updateElementIndex($(this), options.prefix, i);
|
||||
});
|
||||
}
|
||||
}
|
||||
// Check if we've reached the minimum number of forms - hide all delete link(s)
|
||||
if (!showDeleteLinks()){
|
||||
$('a.' + delCssSelector).each(function(){$(this).hide();});
|
||||
}
|
||||
// Check if we need to show the add button:
|
||||
if (buttonRow.is(':hidden') && showAddButton()) buttonRow.show();
|
||||
// If a post-delete callback was provided, call it with the deleted form:
|
||||
if (options.removed) options.removed(row);
|
||||
return false;
|
||||
});
|
||||
};
|
||||
|
||||
$$.each(function(i) {
|
||||
var row = $(this),
|
||||
del = row.find('input:checkbox[id $= "-DELETE"]');
|
||||
if (hasChildElements(row)) {
|
||||
row.addClass(options.formCssClass);
|
||||
if (row.is(':visible')) {
|
||||
insertDeleteLink(row);
|
||||
applyExtraClasses(row, i);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
if ($$.length) {
|
||||
var hideAddButton = !showAddButton(),
|
||||
addButton, template;
|
||||
if (options.formTemplate) {
|
||||
// If a form template was specified, we'll clone it to generate new form instances:
|
||||
template = (options.formTemplate instanceof $) ? options.formTemplate : $(options.formTemplate);
|
||||
template.removeAttr('id').addClass(options.formCssClass + ' formset-custom-template');
|
||||
template.find(childElementSelector).each(function() {
|
||||
updateElementIndex($(this), options.prefix, '__prefix__');
|
||||
});
|
||||
insertDeleteLink(template);
|
||||
} else {
|
||||
// Otherwise, use the last form in the formset; this works much better if you've got
|
||||
// extra (>= 1) forms (thnaks to justhamade for pointing this out):
|
||||
if (options.hideLastAddForm) $('.' + options.formCssClass + ':last').hide();
|
||||
template = $('.' + options.formCssClass + ':last').clone(true).removeAttr('id');
|
||||
template.find('input:hidden[id $= "-DELETE"]').remove();
|
||||
// Clear all cloned fields, except those the user wants to keep (thanks to brunogola for the suggestion):
|
||||
template.find(childElementSelector).not(options.keepFieldValues).each(function() {
|
||||
var elem = $(this);
|
||||
// If this is a checkbox or radiobutton, uncheck it.
|
||||
// This fixes Issue 1, reported by Wilson.Andrew.J:
|
||||
if (elem.is('input:checkbox') || elem.is('input:radio')) {
|
||||
elem.attr('checked', false);
|
||||
} else {
|
||||
elem.val('');
|
||||
}
|
||||
});
|
||||
}
|
||||
// FIXME: Perhaps using $.data would be a better idea?
|
||||
options.formTemplate = template;
|
||||
|
||||
var addButtonHTML = '<a class="' + options.addCssClass + '" href="javascript:void(0)">' + options.addText + '</a>';
|
||||
if (options.addContainerClass) {
|
||||
// If we have a specific container for the "add" button,
|
||||
// place it as the last child of that container:
|
||||
var addContainer = $('[class*="' + options.addContainerClass + '"');
|
||||
addContainer.append(addButtonHTML);
|
||||
addButton = addContainer.find('[class="' + options.addCssClass + '"]');
|
||||
} else if ($$.is('TR')) {
|
||||
// If forms are laid out as table rows, insert the
|
||||
// "add" button in a new table row:
|
||||
var numCols = $$.eq(0).children().length, // This is a bit of an assumption :|
|
||||
buttonRow = $('<tr><td colspan="' + numCols + '">' + addButtonHTML + '</tr>').addClass(options.formCssClass + '-add');
|
||||
$$.parent().append(buttonRow);
|
||||
addButton = buttonRow.find('a');
|
||||
} else {
|
||||
// Otherwise, insert it immediately after the last form:
|
||||
$$.filter(':last').after(addButtonHTML);
|
||||
addButton = $$.filter(':last').next();
|
||||
}
|
||||
|
||||
if (hideAddButton) addButton.hide();
|
||||
|
||||
addButton.click(function() {
|
||||
var formCount = parseInt(totalForms.val()),
|
||||
row = options.formTemplate.clone(true).removeClass('formset-custom-template'),
|
||||
buttonRow = $($(this).parents('tr.' + options.formCssClass + '-add').get(0) || this),
|
||||
delCssSelector = $.trim(options.deleteCssClass).replace(/\s+/g, '.');
|
||||
applyExtraClasses(row, formCount);
|
||||
row.insertBefore(buttonRow).show();
|
||||
row.find(childElementSelector).each(function() {
|
||||
updateElementIndex($(this), options.prefix, formCount);
|
||||
});
|
||||
totalForms.val(formCount + 1);
|
||||
// Check if we're above the minimum allowed number of forms -> show all delete link(s)
|
||||
if (showDeleteLinks()){
|
||||
$('a.' + delCssSelector).each(function(){$(this).show();});
|
||||
}
|
||||
// Check if we've exceeded the maximum allowed number of forms:
|
||||
if (!showAddButton()) buttonRow.hide();
|
||||
// If a post-add callback was supplied, call it with the added form:
|
||||
if (options.added) options.added(row);
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
return $$;
|
||||
};
|
||||
|
||||
/* Setup plugin defaults */
|
||||
$.fn.formset.defaults = {
|
||||
prefix: 'form', // The form prefix for your django formset
|
||||
formTemplate: null, // The jQuery selection cloned to generate new form instances
|
||||
addText: 'add another', // Text for the add link
|
||||
deleteText: 'remove', // Text for the delete link
|
||||
addContainerClass: null, // Container CSS class for the add link
|
||||
deleteContainerClass: null, // Container CSS class for the delete link
|
||||
addCssClass: 'add-row', // CSS class applied to the add link
|
||||
deleteCssClass: 'delete-row', // CSS class applied to the delete link
|
||||
formCssClass: 'dynamic-form', // CSS class applied to each form in a formset
|
||||
extraClasses: [], // Additional CSS classes, which will be applied to each form in turn
|
||||
keepFieldValues: '', // jQuery selector for fields whose values should be kept when the form is cloned
|
||||
added: null, // Function called each time a new form is added
|
||||
removed: null, // Function called each time a form is deleted
|
||||
hideLastAddForm: false // When set to true, hide last empty add form (becomes visible when clicking on add button)
|
||||
};
|
||||
})(jQuery);
|
||||
Vendored
BIN
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user