2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-06-28 09:40:43 +00:00

Renamed 'customer-order' app to 'customer'

- This app should manage more than just orders
- Moved the 'Customer' model into this app
This commit is contained in:
Oliver
2018-04-17 23:39:53 +10:00
parent 53d7fd2c46
commit 8856d7f793
24 changed files with 145 additions and 188 deletions

@ -51,7 +51,7 @@ INSTALLED_APPS = [
'stock.apps.StockConfig',
'supplier.apps.SupplierConfig',
'build.apps.BuildConfig',
'customer_orders.apps.CustomerOrdersConfig'
'customer.apps.CustomerConfig'
]
MIDDLEWARE = [

@ -13,7 +13,7 @@ from supplier.urls import supplier_urls
from build.urls import build_urls
from customer_orders.urls import customer_orders_urls
from customer.urls import customer_orders_urls
from django.conf import settings
from django.conf.urls.static import static

@ -0,0 +1,21 @@
from django.contrib import admin
from import_export.admin import ImportExportModelAdmin
from .models import Customer, CustomerOrder, CustomerOrderLine
class CustomerAdmin(ImportExportModelAdmin):
list_display = ('name', 'website', 'contact')
class CustomerOrderAdmin(admin.ModelAdmin):
pass
class CustomerOrderLineAdmin(admin.ModelAdmin):
pass
admin.site.register(Customer, CustomerAdmin)
admin.site.register(CustomerOrder, CustomerOrderAdmin)
admin.site.register(CustomerOrderLine, CustomerOrderLineAdmin)

@ -0,0 +1,5 @@
from django.apps import AppConfig
class CustomerConfig(AppConfig):
name = 'customer'

@ -0,0 +1,62 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.12 on 2018-04-17 13:37
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
initial = True
dependencies = [
('part', '0022_auto_20180417_0819'),
]
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=100, unique=True)),
('description', models.CharField(max_length=500)),
('website', models.URLField(blank=True)),
('address', models.CharField(blank=True, max_length=200)),
('phone', models.CharField(blank=True, max_length=50)),
('email', models.EmailField(blank=True, max_length=254)),
('contact', models.CharField(blank=True, max_length=100)),
('notes', models.CharField(blank=True, max_length=500)),
],
options={
'abstract': False,
},
),
migrations.CreateModel(
name='CustomerOrder',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('internal_ref', models.CharField(max_length=100, unique=True)),
('customer_ref', models.CharField(blank=True, default=b'', max_length=100)),
('created_date', models.DateField(auto_now_add=True, help_text=b'Date order entered in system')),
('issued_date', models.DateField(blank=True, help_text=b'Date order issued by customer')),
('notes', models.TextField(blank=True, default=b'', help_text=b'Order notes')),
('customer', models.ForeignKey(blank=True, help_text=b'Customer that placed this order', null=True, on_delete=django.db.models.deletion.SET_NULL, to='customer.Customer')),
],
),
migrations.CreateModel(
name='CustomerOrderLine',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('line_number', models.PositiveIntegerField(default=0, help_text=b'Line number')),
('quantity', models.PositiveIntegerField(blank=True, help_text=b'Quantity of part')),
('notes', models.TextField(blank=True, help_text=b'Line notes')),
('customer_order', models.ForeignKey(help_text=b'Order this line belongs to', on_delete=django.db.models.deletion.CASCADE, to='customer.CustomerOrder')),
('part', models.ForeignKey(blank=True, help_text=b'Part', on_delete=django.db.models.deletion.CASCADE, to='part.Part')),
],
),
migrations.AlterUniqueTogether(
name='customerorderline',
unique_together=set([('customer_order', 'line_number')]),
),
]

@ -60,7 +60,10 @@ class CustomerOrderLine(models.Model):
line_number = models.PositiveIntegerField(default=0, help_text="Line number")
# TODO: for now, each line corresponds to some quantity of some part, but in future we might want more flexibility
part = models.ForeignKey(Part, blank=True, help_text="Part")
# Only 'salable' items should be allowed in a CSO
part = models.ForeignKey(Part, blank=True, help_text="Part",
limit_choices_to={'salable' : True}
)
# TODO: should quantity field here somehow related to quantity field of related part? Views will handle this, right?
quantity = models.PositiveIntegerField(blank=True, help_text="Quantity of part")

@ -1,15 +0,0 @@
from django.contrib import admin
from import_export.admin import ImportExportModelAdmin
from .models import CustomerOrder, CustomerOrderLine
class CustomerOrderAdmin(admin.ModelAdmin):
pass
class CustomerOrderLineAdmin(admin.ModelAdmin):
pass
admin.site.register(CustomerOrder, CustomerOrderAdmin)
admin.site.register(CustomerOrderLine, CustomerOrderLineAdmin)

@ -1,5 +0,0 @@
from django.apps import AppConfig
class CustomerOrdersConfig(AppConfig):
name = 'customer_orders'

@ -1,37 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11 on 2018-04-17 11:27
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
initial = True
dependencies = [
('supplier', '0007_auto_20180416_1253'),
]
operations = [
migrations.CreateModel(
name='CustomerOrder',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('customer', models.ForeignKey(blank=True, help_text='Customer that placed this order', null=True, on_delete=django.db.models.deletion.SET_NULL, to='supplier.Customer')),
],
),
migrations.CreateModel(
name='CustomerOrderLine',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('line_number', models.PositiveIntegerField(default=0)),
('customer_order', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='customer_orders.CustomerOrder')),
],
),
migrations.AlterUniqueTogether(
name='customerorderline',
unique_together=set([('customer_order', 'line_number')]),
),
]

@ -1,73 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11 on 2018-04-17 12:05
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
import django.utils.timezone
class Migration(migrations.Migration):
dependencies = [
('part', '0019_auto_20180416_1249'),
('customer_orders', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='customerorder',
name='created_date',
field=models.DateField(auto_now_add=True, default=django.utils.timezone.now, help_text='Date order entered in system'),
preserve_default=False,
),
migrations.AddField(
model_name='customerorder',
name='customer_ref',
field=models.CharField(blank=True, default='', max_length=100),
),
migrations.AddField(
model_name='customerorder',
name='internal_ref',
field=models.CharField(default=0, max_length=100, unique=True),
preserve_default=False,
),
migrations.AddField(
model_name='customerorder',
name='issued_date',
field=models.DateField(blank=True, default=django.utils.timezone.now, help_text='Date order issued by customer'),
preserve_default=False,
),
migrations.AddField(
model_name='customerorder',
name='notes',
field=models.TextField(blank=True, default='', help_text='Order notes'),
),
migrations.AddField(
model_name='customerorderline',
name='notes',
field=models.TextField(blank=True, help_text='Line notes'),
),
migrations.AddField(
model_name='customerorderline',
name='part',
field=models.ForeignKey(default=0, help_text='Part', on_delete=django.db.models.deletion.CASCADE, to='part.Part'),
preserve_default=False,
),
migrations.AddField(
model_name='customerorderline',
name='quantity',
field=models.IntegerField(default=1, help_text='Quantity of part'),
preserve_default=False,
),
migrations.AlterField(
model_name='customerorderline',
name='customer_order',
field=models.ForeignKey(help_text='Order this line belongs to', on_delete=django.db.models.deletion.CASCADE, to='customer_orders.CustomerOrder'),
),
migrations.AlterField(
model_name='customerorderline',
name='line_number',
field=models.PositiveIntegerField(default=0, help_text='Line number'),
),
]

@ -1,48 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.12 on 2018-04-17 13:23
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('customer_orders', '0002_auto_20180417_2205'),
]
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=100, unique=True)),
('description', models.CharField(max_length=500)),
('website', models.URLField(blank=True)),
('address', models.CharField(blank=True, max_length=200)),
('phone', models.CharField(blank=True, max_length=50)),
('email', models.EmailField(blank=True, max_length=254)),
('contact', models.CharField(blank=True, max_length=100)),
('notes', models.CharField(blank=True, max_length=500)),
],
options={
'abstract': False,
},
),
migrations.AlterField(
model_name='customerorder',
name='customer',
field=models.ForeignKey(blank=True, help_text=b'Customer that placed this order', null=True, on_delete=django.db.models.deletion.SET_NULL, to='customer_orders.Customer'),
),
migrations.AlterField(
model_name='customerorderline',
name='part',
field=models.ForeignKey(blank=True, help_text=b'Part', on_delete=django.db.models.deletion.CASCADE, to='part.Part'),
),
migrations.AlterField(
model_name='customerorderline',
name='quantity',
field=models.PositiveIntegerField(blank=True, help_text=b'Quantity of part'),
),
]

@ -330,7 +330,8 @@ class BomItem(models.Model):
# A link to the parent part
# Each part will get a reverse lookup field 'bom_items'
part = models.ForeignKey(Part, on_delete=models.CASCADE, related_name='bom_items')
part = models.ForeignKey(Part, on_delete=models.CASCADE, related_name='bom_items',
limit_choices_to={'buildable': True})
# A link to the child item (sub-part)
# Each part will get a reverse lookup field 'used_in'

@ -0,0 +1,21 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.12 on 2018-04-17 13:37
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('stock', '0012_auto_20180417_1316'),
]
operations = [
migrations.AlterField(
model_name='stockitem',
name='customer',
field=models.ForeignKey(blank=True, help_text='Item assigned to customer?', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='stockitems', to='customer.Customer'),
),
]

@ -12,7 +12,7 @@ from django.dispatch import receiver
from datetime import datetime
from supplier.models import SupplierPart
from supplier.models import Customer
from customer.models import Customer
from part.models import Part
from InvenTree.models import InvenTreeTree
from build.models import Build

@ -1,10 +1,14 @@
from django.contrib import admin
from import_export.admin import ImportExportModelAdmin
from .models import Supplier, SupplierPart, Customer, Manufacturer
from .models import Supplier, SupplierPart, Manufacturer
class CompanyAdmin(ImportExportModelAdmin):
class SupplierAdmin(ImportExportModelAdmin):
list_display = ('name', 'website', 'contact')
class ManufacturerAdmin(ImportExportModelAdmin):
list_display = ('name', 'website', 'contact')
@ -12,7 +16,6 @@ class SupplierPartAdmin(ImportExportModelAdmin):
list_display = ('part', 'supplier', 'SKU')
admin.site.register(Customer, CompanyAdmin)
admin.site.register(Supplier, CompanyAdmin)
admin.site.register(Manufacturer, CompanyAdmin)
admin.site.register(Supplier, SupplierAdmin)
admin.site.register(Manufacturer, ManufacturerAdmin)
admin.site.register(SupplierPart, SupplierPartAdmin)

@ -0,0 +1,18 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.12 on 2018-04-17 13:37
from __future__ import unicode_literals
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('supplier', '0007_auto_20180416_1253'),
]
operations = [
migrations.DeleteModel(
name='Customer',
),
]

@ -19,6 +19,7 @@ migrate:
python InvenTree/manage.py makemigrations stock
python InvenTree/manage.py makemigrations supplier
python InvenTree/manage.py makemigrations build
python InvenTree/manage.py makemigrations customer
python InvenTree/manage.py migrate --run-syncdb
python InvenTree/manage.py check