2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-04-29 12:06:44 +00:00
This commit is contained in:
Oliver Walters 2017-03-28 23:29:00 +11:00
parent c111aaf9b2
commit 14f60e1292
2 changed files with 10 additions and 7 deletions

View File

@ -7,4 +7,4 @@ before_install:
script: script:
# TODO - Only perform PEP8 checks on files that have been changed in this push / PR # TODO - Only perform PEP8 checks on files that have been changed in this push / PR
- find . -name \*.py -exec pep8 --ignore=E402,W293 {} + - find . -name \*.py -exec pep8 --ignore=E402,W293,E501 {} +

View File

@ -4,6 +4,7 @@ from django.db import models
from django.core.exceptions import ObjectDoesNotExist from django.core.exceptions import ObjectDoesNotExist
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
class Company(models.Model): class Company(models.Model):
""" Abstract model representing an external company """ Abstract model representing an external company
""" """
@ -22,10 +23,11 @@ class Company(models.Model):
blank=True) blank=True)
notes = models.CharField(max_length=500, notes = models.CharField(max_length=500,
blank=True) blank=True)
def __str__(self): def __str__(self):
return self.name return self.name
class InvenTreeTree(models.Model): class InvenTreeTree(models.Model):
""" Provides an abstracted self-referencing tree model for data categories. """ Provides an abstracted self-referencing tree model for data categories.
- Each Category has one parent Category, which can be blank (for a top-level Category). - Each Category has one parent Category, which can be blank (for a top-level Category).
@ -58,7 +60,7 @@ class InvenTreeTree(models.Model):
# Some magic to get around the limitations of abstract models # Some magic to get around the limitations of abstract models
contents = ContentType.objects.get_for_model(type(self)) contents = ContentType.objects.get_for_model(type(self))
children = contents.get_all_objects_for_this_type(parent = self.id) children = contents.get_all_objects_for_this_type(parent=self.id)
for child in children: for child in children:
child.getUniqueChildren(unique) child.getUniqueChildren(unique)
@ -120,7 +122,8 @@ class InvenTreeTree(models.Model):
""" """
if attrname == 'parent_id': if attrname == 'parent_id':
# If current ID is None, continue (as this object is just being created) # If current ID is None, continue
# - This object is just being created
if self.id is None: if self.id is None:
pass pass
# Parent cannot be set to same ID (this would cause looping) # Parent cannot be set to same ID (this would cause looping)
@ -134,13 +137,13 @@ class InvenTreeTree(models.Model):
kids = self.getUniqueChildren() kids = self.getUniqueChildren()
if val in kids: if val in kids:
return return
# Prohibit certain characters from tree node names # Prohibit certain characters from tree node names
elif attrname == 'name': elif attrname == 'name':
val = val.translate({ord(c): None for c in "!@#$%^&*'\"\\/[]{}<>,|+=~`"}) val = val.translate({ord(c): None for c in "!@#$%^&*'\"\\/[]{}<>,|+=~`"})
super(InvenTreeTree, self).__setattr__(attrname, val) super(InvenTreeTree, self).__setattr__(attrname, val)
def __str__(self): def __str__(self):
""" String representation of a category is the full path to that category """ String representation of a category is the full path to that category
@ -148,4 +151,4 @@ class InvenTreeTree(models.Model):
This is recursive - Make it not so. This is recursive - Make it not so.
""" """
return self.path return self.path