Started with products

master
Kerem Yollu 2 years ago
parent 87d2e04646
commit 5d3b3b4a82

@ -105,7 +105,8 @@ class Note_status(db.Model):
description = db.Column(db.String(300), nullable=False)
upload_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
last_update_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow, onupdate=datetime.utcnow)
notes = db.relationship('Company_note', backref='company_note_status', lazy=True)
company_notes = db.relationship('Company_note', backref='company_note_status', lazy=True)
person_notes = db.relationship('Person_note', backref='person_note_status', lazy=True)
# returns a more information-rich, or official, string representation of an object
def __repr__(self):
@ -131,7 +132,7 @@ class Industry(db.Model):
upload_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
last_update_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow, onupdate=datetime.utcnow)
companies = db.relationship('Company', backref='company_industry', lazy=True)
#projects = db.relationship('Project', backref='project_industry', lazy=True)
projects = db.relationship('Project', backref='project_industry', lazy=True)
# returns a more information-rich, or official, string representation of an object
def __repr__(self):
@ -171,8 +172,8 @@ class Person(db.Model):
# One To Many relationships for a company having mutliple elements of the following indexes
# Example : One company would/could have many eployees
notes = db.relationship('Person_note', backref='person', lazy=True)
# projects = db.Column(db.Integer, db.ForeignKey('project.id'), nullable=True)
# elements = db.Column(db.Integer, db.ForeignKey('project_element.id'), nullable=True)
projects = db.relationship('Project', backref='project_responsible', lazy=True)
elements = db.relationship('Project', backref='element_responsible', lazy=True)
class Person_role(db.Model):
@ -206,7 +207,7 @@ class Person_note(db.Model):
date_due = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
person_id = db.Column(db.Integer, db.ForeignKey('person.id'), nullable=False)
#status_id = db.Column(db.Integer, db.ForeignKey('note_status.id'), nullable=False)
status_id = db.Column(db.Integer, db.ForeignKey('note_status.id'), nullable=False)
# returns a more information-rich, or official, string representation of an object
def __repr__(self):
@ -250,6 +251,7 @@ class Company(db.Model):
# One To Many relationships for a company having mutliple elements of the following indexes
# Example : One company would/could have many eployees
employees = db.relationship('Person', backref='employer', lazy=True)
projects = db.relationship('Project', backref='belongs_to', lazy=True)
notes = db.relationship('Company_note', backref='company', lazy=True)
@ -301,31 +303,29 @@ class Company_note(db.Model):
###################################################################################################
# Project
###################################################################################################
'''
class Project(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(100), nullable=False)
description = db.Column(db.String(300), nullable=False)
#elements = db.relationship('Project_element', backref='project_elements', lazy=True)
#company_id = db.Column(db.Integer, db.ForeignKey('company.id'), nullable=False)
#industry_id = db.Column(db.Integer, db.ForeignKey('industry.id'), nullable=False)
project_owner = db.relationship('Person', backref='project_owner', lazy=True)
#buyer = db.relationship('Person', backref='project_buyer', lazy=True)
#responsible = db.relationship('Person', backref='project_manager', lazy=True)
date_prototype = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
qte_prototype = db.Column(db.Integer, nullable=True)
qte_prototype = db.Column(db.Integer, nullable=False)
date_start = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
qte_start = db.Column(db.Integer, nullable=True)
qte_start = db.Column(db.Integer, nullable=False)
date_production = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
qte_production = db.Column(db.Integer, nullable=True)
status = db.Column(db.String(100), nullable=True, default='')
qte_production = db.Column(db.Integer, nullable=False)
upload_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
last_update_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow, onupdate=datetime.utcnow)
# One To Many relationships where indexes can point o mutiple companies.
company_id = db.Column(db.Integer, db.ForeignKey('company.id'), nullable=False)
status_id = db.Column(db.Integer, db.ForeignKey('project_status.id'), nullable=False)
industry_id = db.Column(db.Integer, db.ForeignKey('industry.id'), nullable=False)
owner_id = db.Column(db.Integer, db.ForeignKey('person.id'), nullable=False)
# One To Many relationships for a company having mutliple elements of the following indexes
# Example : One company would/could have many eployees
elements = db.relationship('Project_element', backref='project', lazy=True)
# returns a more information-rich, or official, string representation of an object
def __repr__(self):
return f"{self.name}"
@ -334,20 +334,125 @@ class Project_element(db.Model):
id = db.Column(db.Integer, nullable=False, primary_key=True)
name = db.Column(db.String(100), nullable=False)
description = db.Column(db.String(300), nullable=False)
qte_per_project = db.Column(db.Integer, nullable=False, default='0')
upload_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
last_update_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow, onupdate=datetime.utcnow)
project_id = db.Column(db.Integer, db.ForeignKey('project.id'), nullable=True)
industry_id = db.Column(db.Integer, db.ForeignKey('industry.id'), nullable=True)
owner = db.relationship('Person', backref='element_owner', lazy=True)
buyer = db.relationship('Person', backref='element_buyer', lazy=True)
responsible = db.relationship('Person', backref='element_manager', lazy=True)
owner_id = db.Column(db.Integer, db.ForeignKey('person.id'), nullable=False)
status_id = db.Column(db.Integer, db.ForeignKey('project_status.id'), nullable=False)
# returns a more information-rich, or official, string representation of an object
def __repr__(self):
return f"{self.name}"
class Project_status(db.Model):
id = db.Column(db.Integer, nullable=False, primary_key=True)
name = db.Column(db.String(50), nullable=False)
description = db.Column(db.String(300), nullable=False)
upload_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
last_update_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow, onupdate=datetime.utcnow)
projects = db.relationship('Project', backref='status', lazy=True)
elements = db.relationship('Project', backref='element_status', lazy=True)
# returns a more information-rich, or official, string representation of an object
def __repr__(self):
return f"{self.name}"
###################################################################################################
# Product
###################################################################################################
class Product(db.Model):
id = db.Column(db.Integer, nullable=False, primary_key=True)
buy_cost = db.Column(db.Float, nullable=False)
comment = db.Column(db.String(300), nullable=False)
comment_manufacturer = db.Column(db.String(300), nullable=False)
currency = db.Column(db.String(50), nullable=False)
description = db.Column(db.String(300), nullable=False)
last_time_buy_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
lead_time_days = db.Column(db.Integer, nullable=False)
minimum_awarding_quantity = db.Column(db.Integer, nullable=False)
minimum_order_quantity = db.Column(db.Integer, nullable=False)
minimum_quote_quantity = db.Column(db.Integer, nullable=False)
obsolete_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
ordering_code = db.Column(db.String(100), nullable=False)
pollution_level = db.Column(db.String(50), nullable=True)
price_change_flag = db.Column(db.Boolean, nullable=False, default='0')
pricing_scheme = db.Column(db.String(300), nullable=False)
proposed_margin = db.Column(db.Float, nullable=False)
upload_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
last_update_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow, onupdate=datetime.utcnow)
status_id = db.Column(db.Integer, db.ForeignKey('product_status.id'), nullable=False)
classification_id = db.Column(db.Integer, db.ForeignKey('product_classification.id'), nullable=False)
packaging_id = db.Column(db.Integer, db.ForeignKey('product_packaging.id'), nullable=False)
physical_id = db.Column(db.Integer, db.ForeignKey('product_physical.id'), nullable=False)
qte_per_project = db.Column(db.Integer, nullable=False, default='0')
status = db.Column(db.String(100), nullable=True, default='')
class Product_status(db.Model):
id = db.Column(db.Integer, nullable=False, primary_key=True)
name = db.Column(db.String(50), nullable=False)
description = db.Column(db.String(300), nullable=False)
upload_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
last_update_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow, onupdate=datetime.utcnow)
products = db.relationship('Product', backref='status', lazy=True)
# returns a more information-rich, or official, string representation of an object
def __repr__(self):
return f"{self.name}"
class Product_classification(db.Model):
id = db.Column(db.Integer, nullable=False, primary_key=True)
name = db.Column(db.String(50), nullable=False)
description = db.Column(db.String(300), nullable=False)
products = db.relationship('Product', backref='classification', lazy=True)
# returns a more information-rich, or official, string representation of an object
def __repr__(self):
return f"{self.name}"
class Product_packaging(db.Model):
id = db.Column(db.Integer, nullable=False, primary_key=True)
name = db.Column(db.String(50), nullable=False)
description = db.Column(db.String(300), nullable=False)
unit = db.Column(db.Integer)
quantity = db.Column(db.Integer)
total = db.Column(db.Integer)
products = db.relationship('Product', backref='packaging', lazy=True)
# returns a more information-rich, or official, string representation of an object
def __repr__(self):
return f"{self.name}"
class Product_physical(db.Model):
id = db.Column(db.Integer, nullable=False, primary_key=True)
name = db.Column(db.String(50), nullable=False)
description = db.Column(db.String(300), nullable=False)
image_file = db.Column(db.String(20), nullable=False, default='default_company.jpg')
pitch_x = db.Column(db.Float, nullable=True)
pitch_y = db.Column(db.Float, nullable=True)
size_x = db.Column(db.Float, nullable=True)
size_y = db.Column(db.Float, nullable=True)
size_z = db.Column(db.Float, nullable=True)
type = db.Column(db.String(50), nullable=False)
products = db.relationship('Product', backref='physical', lazy=True)
# returns a more information-rich, or official, string representation of an object
def __repr__(self):
return f"{self.name}"
'''
physical (MUL, int)
container (varchar)
favourite (tinyint, NULL, nullable)
manufacturer (varchar)
production_site (varchar)
'''

@ -1,5 +1,5 @@
from flask import render_template, request, Blueprint
from minibase.database.models import Company, Post, Company_note
from minibase.database.models import Company, Post, Company_note, Person_note
from minibase.config import themeMinibase
from minibase import db
@ -16,8 +16,14 @@ def home():
posts = Post.query.order_by(Post.date_posted.asc()).paginate(per_page=2)
companies = Company.query.order_by(Company.name.asc())
companie_notes = Company_note.query.order_by(Company_note.title.asc())
person_notes = Person_note.query.order_by(Person_note.title.asc())
# (HTML) Renders the template for templates/home.html
return render_template('home.html', theme=themeMinibase, posts=posts, companies=companies, companie_notes=companie_notes)
return render_template('home.html',
theme=themeMinibase,
posts=posts,
companies=companies,
companie_notes=companie_notes,
person_notes=person_notes)
@main.route("/about")

Binary file not shown.

@ -4,7 +4,6 @@
<div class="container-fluid pt-2">
<div class="container-fluid" style="{{ theme.homeOverviewBgColor }}">
<h1 class="text-center"> Overwiev </h1>
<div class="row">
<div class="col">
<h3> <a href="#">Companies</a> </h3>
<table class="{{ theme.tableClass }}">
@ -34,6 +33,7 @@
</tbody>
</table>
</div>
<div class="col">
<h3> <a href="#">Notes</a> </h3>
<table class="{{ theme.tableClass }}">
@ -63,6 +63,38 @@
</tbody>
</table>
</div>
<div class="col">
<h3> <a href="#">Notes</a> </h3>
<table class="{{ theme.tableClass }}">
<thead>
<tr>
<th scope="col">Person</th>
<th scope="col">Title</th>
<th scope="col">Content</th>
<th scope="col">Status</th>
<th scope="col">Priority</th>
<th scope="col">Date Posted</th>
<th scope="col">Due Date</th>
</tr>
</thead>
<tbody>
{% for elem in person_notes %}
<tr>
<th scope="row">{{ elem.person.name }}</th>
<td>{{ elem.title }}</td>
<td>{{ elem.content }}</td>
<td>{{ elem.person_note_status }}</td>
<td>{{ elem.priority }}</td>
<td>{{ elem.date_posted.strftime('%d-%m-%Y') }}</td>
<td>{{ elem.date_due.strftime('%d-%m-%Y') }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
{% endblock content %}

@ -2,7 +2,8 @@ from minibase import db, create_minibase
from minibase.database.models import Person, Person_role, Person_competence, Person_note
from minibase.database.models import Company, Company_relation, Company_legal_entity, Company_note, Company_status
from minibase.database.models import Status, Industry, Note_status
#from minibase.database.models import Project
from minibase.database.models import Project, Project_status, Project_element
from minibase.database.models import Product, Product_status, Project_element, Product_physical, Product_packaging
app = create_minibase()
app.app_context().push()
@ -215,34 +216,67 @@ note3 = Person_note(
title='Birthday of Stefan',
content='Congratulate Stefan for his birthday',
priority='5',
person_id='2')
#status_id='1')
person_id='2',
status_id='1')
db.session.add(note3)
note4 = Person_note(
title='Wake Up kerem',
content='He is still slepping',
priority='10',
person_id='1')
#status_id='3')
person_id='1',
status_id='3')
db.session.add(note4)
note5 = Person_note(
title='Research for Stefan',
content='He is looking for a new job',
priority='8',
person_id='2')
#status_id='2')
person_id='2',
status_id='2')
db.session.add(note5)
'''
###################################################################################################
projectStatus1 = Project_status(
name='Open',
description='Ongoing')
db.session.add(projectStatus1)
projectStatus2 = Project_status(
name='Closed',
description='Closed')
db.session.add(projectStatus2)
projectStatus3 = Project_status(
name='Pending',
description='Action Required')
db.session.add(projectStatus3)
project1 = Project(
name='Stwa-Hs',
description='Akku Sprüh Gerät für hautmittel!')
# buyer='2',
# responsible='1')
name='STWA-HS',
description='Aküsprühgerät für hautmittel',
company_id='1',
status_id='1',
industry_id='1',
owner_id='1',
qte_prototype='10',
qte_start='5000',
qte_production='10000')
db.session.add(project1)
element1 = Project_element(
name='Power Board',
description='Dc-Dc regulation fo batteries',
qte_per_project='8',
project_id='1',
owner_id='1',
status_id='1')
db.session.add(element1)
'''
###################################################################################################
status1 = Status(
name='Obsolete',

Loading…
Cancel
Save