mirror of
https://github.com/inventree/InvenTree.git
synced 2025-06-18 21:15:41 +00:00
removes all lines consisting only of spaces
this really bothers me for some reason - nothing technical
This commit is contained in:
@ -41,7 +41,7 @@ class CompanyList(generics.ListCreateAPIView):
|
||||
queryset = CompanySerializer.annotate_queryset(queryset)
|
||||
|
||||
return queryset
|
||||
|
||||
|
||||
filter_backends = [
|
||||
DjangoFilterBackend,
|
||||
filters.SearchFilter,
|
||||
@ -116,7 +116,7 @@ class ManufacturerPartList(generics.ListCreateAPIView):
|
||||
kwargs['pretty'] = str2bool(self.request.query_params.get('pretty', None))
|
||||
except AttributeError:
|
||||
pass
|
||||
|
||||
|
||||
kwargs['context'] = self.get_serializer_context()
|
||||
|
||||
return self.serializer_class(*args, **kwargs)
|
||||
@ -167,7 +167,7 @@ class ManufacturerPartList(generics.ListCreateAPIView):
|
||||
'part__name',
|
||||
'part__description',
|
||||
]
|
||||
|
||||
|
||||
|
||||
class ManufacturerPartDetail(generics.RetrieveUpdateDestroyAPIView):
|
||||
""" API endpoint for detail view of ManufacturerPart object
|
||||
@ -255,7 +255,7 @@ class SupplierPartList(generics.ListCreateAPIView):
|
||||
kwargs['part_detail'] = str2bool(self.request.query_params.get('part_detail', None))
|
||||
except AttributeError:
|
||||
pass
|
||||
|
||||
|
||||
try:
|
||||
kwargs['supplier_detail'] = str2bool(self.request.query_params.get('supplier_detail', None))
|
||||
except AttributeError:
|
||||
@ -270,7 +270,7 @@ class SupplierPartList(generics.ListCreateAPIView):
|
||||
kwargs['pretty'] = str2bool(self.request.query_params.get('pretty', None))
|
||||
except AttributeError:
|
||||
pass
|
||||
|
||||
|
||||
kwargs['context'] = self.get_serializer_context()
|
||||
|
||||
return self.serializer_class(*args, **kwargs)
|
||||
|
@ -158,7 +158,7 @@ class EditSupplierPartForm(HelperForm):
|
||||
empty_choice = [('', '----------')]
|
||||
|
||||
manufacturers = [(manufacturer.id, manufacturer.name) for manufacturer in Company.objects.filter(is_manufacturer=True)]
|
||||
|
||||
|
||||
return empty_choice + manufacturers
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
|
@ -152,7 +152,7 @@ class Company(models.Model):
|
||||
def currency_code(self):
|
||||
"""
|
||||
Return the currency code associated with this company.
|
||||
|
||||
|
||||
- If the currency code is invalid, use the default currency
|
||||
- If the currency code is not specified, use the default currency
|
||||
"""
|
||||
@ -187,7 +187,7 @@ class Company(models.Model):
|
||||
return getMediaUrl(self.image.thumbnail.url)
|
||||
else:
|
||||
return getBlankThumbnail()
|
||||
|
||||
|
||||
@property
|
||||
def manufactured_part_count(self):
|
||||
""" The number of parts manufactured by this company """
|
||||
@ -302,7 +302,7 @@ class ManufacturerPart(models.Model):
|
||||
|
||||
class Meta:
|
||||
unique_together = ('part', 'manufacturer', 'MPN')
|
||||
|
||||
|
||||
part = models.ForeignKey('part.Part', on_delete=models.CASCADE,
|
||||
related_name='manufacturer_parts',
|
||||
verbose_name=_('Base Part'),
|
||||
@ -311,7 +311,7 @@ class ManufacturerPart(models.Model):
|
||||
},
|
||||
help_text=_('Select part'),
|
||||
)
|
||||
|
||||
|
||||
manufacturer = models.ForeignKey(
|
||||
Company,
|
||||
on_delete=models.CASCADE,
|
||||
@ -359,7 +359,7 @@ class ManufacturerPart(models.Model):
|
||||
if not manufacturer_part:
|
||||
manufacturer_part = ManufacturerPart(part=part, manufacturer=manufacturer, MPN=mpn, description=description, link=link)
|
||||
manufacturer_part.save()
|
||||
|
||||
|
||||
return manufacturer_part
|
||||
|
||||
def __str__(self):
|
||||
@ -414,7 +414,7 @@ class SupplierPart(models.Model):
|
||||
MPN = kwargs.pop('MPN')
|
||||
else:
|
||||
MPN = None
|
||||
|
||||
|
||||
if manufacturer or MPN:
|
||||
if not self.manufacturer_part:
|
||||
# Create ManufacturerPart
|
||||
@ -429,7 +429,7 @@ class SupplierPart(models.Model):
|
||||
manufacturer_part_id = self.manufacturer_part.id
|
||||
except AttributeError:
|
||||
manufacturer_part_id = None
|
||||
|
||||
|
||||
if manufacturer_part_id:
|
||||
try:
|
||||
(manufacturer_part, created) = ManufacturerPart.objects.update_or_create(part=self.part,
|
||||
@ -504,7 +504,7 @@ class SupplierPart(models.Model):
|
||||
base_cost = models.DecimalField(max_digits=10, decimal_places=3, default=0, validators=[MinValueValidator(0)], verbose_name=_('base cost'), help_text=_('Minimum charge (e.g. stocking fee)'))
|
||||
|
||||
packaging = models.CharField(max_length=50, blank=True, null=True, verbose_name=_('Packaging'), help_text=_('Part packaging'))
|
||||
|
||||
|
||||
multiple = models.PositiveIntegerField(default=1, validators=[MinValueValidator(1)], verbose_name=_('multiple'), help_text=_('Order multiple'))
|
||||
|
||||
# TODO - Reimplement lead-time as a charfield with special validation (pattern matching).
|
||||
@ -613,7 +613,7 @@ class SupplierPart(models.Model):
|
||||
pb_cost = pb_min.convert_to(currency)
|
||||
# Trigger cost calculation using smallest price break
|
||||
pb_found = True
|
||||
|
||||
|
||||
# Convert quantity to decimal.Decimal format
|
||||
quantity = decimal.Decimal(f'{quantity}')
|
||||
|
||||
@ -669,7 +669,7 @@ class SupplierPart(models.Model):
|
||||
|
||||
if self.manufacturer_string:
|
||||
s = s + ' | ' + self.manufacturer_string
|
||||
|
||||
|
||||
return s
|
||||
|
||||
|
||||
|
@ -51,7 +51,7 @@ class CompanySerializer(InvenTreeModelSerializer):
|
||||
return queryset
|
||||
|
||||
url = serializers.CharField(source='get_absolute_url', read_only=True)
|
||||
|
||||
|
||||
image = serializers.CharField(source='get_thumbnail_url', read_only=True)
|
||||
|
||||
parts_supplied = serializers.IntegerField(read_only=True)
|
||||
@ -157,9 +157,9 @@ class SupplierPartSerializer(InvenTreeModelSerializer):
|
||||
self.fields.pop('pretty_name')
|
||||
|
||||
supplier = serializers.PrimaryKeyRelatedField(queryset=Company.objects.filter(is_supplier=True))
|
||||
|
||||
|
||||
manufacturer = serializers.PrimaryKeyRelatedField(source='manufacturer_part.manufacturer', read_only=True)
|
||||
|
||||
|
||||
MPN = serializers.StringRelatedField(source='manufacturer_part.MPN')
|
||||
|
||||
manufacturer_part = ManufacturerPartSerializer(read_only=True)
|
||||
|
@ -48,7 +48,7 @@ class TestManufacturerField(MigratorTestCase):
|
||||
- Company object (supplier)
|
||||
- SupplierPart object
|
||||
"""
|
||||
|
||||
|
||||
Part = self.old_state.apps.get_model('part', 'part')
|
||||
Company = self.old_state.apps.get_model('company', 'company')
|
||||
SupplierPart = self.old_state.apps.get_model('company', 'supplierpart')
|
||||
@ -123,7 +123,7 @@ class TestManufacturerPart(MigratorTestCase):
|
||||
- Company object (supplier)
|
||||
- SupplierPart object
|
||||
"""
|
||||
|
||||
|
||||
Part = self.old_state.apps.get_model('part', 'part')
|
||||
Company = self.old_state.apps.get_model('company', 'company')
|
||||
SupplierPart = self.old_state.apps.get_model('company', 'supplierpart')
|
||||
@ -220,7 +220,7 @@ class TestManufacturerPart(MigratorTestCase):
|
||||
|
||||
# Check on the SupplierPart objects
|
||||
SupplierPart = self.new_state.apps.get_model('company', 'supplierpart')
|
||||
|
||||
|
||||
supplier_parts = SupplierPart.objects.all()
|
||||
self.assertEqual(supplier_parts.count(), 6)
|
||||
|
||||
@ -229,10 +229,10 @@ class TestManufacturerPart(MigratorTestCase):
|
||||
|
||||
# Check on the ManufacturerPart objects
|
||||
ManufacturerPart = self.new_state.apps.get_model('company', 'manufacturerpart')
|
||||
|
||||
|
||||
manufacturer_parts = ManufacturerPart.objects.all()
|
||||
self.assertEqual(manufacturer_parts.count(), 4)
|
||||
|
||||
|
||||
manufacturer_part = manufacturer_parts.first()
|
||||
self.assertEqual(manufacturer_part.MPN, 'MUR-CAP-123456')
|
||||
|
||||
@ -293,7 +293,7 @@ class TestCurrencyMigration(MigratorTestCase):
|
||||
self.assertIsNone(pb.price)
|
||||
|
||||
def test_currency_migration(self):
|
||||
|
||||
|
||||
PB = self.new_state.apps.get_model('company', 'supplierpricebreak')
|
||||
|
||||
for pb in PB.objects.all():
|
||||
|
@ -30,7 +30,7 @@ class CompanyViewTestBase(TestCase):
|
||||
|
||||
# Create a user
|
||||
user = get_user_model()
|
||||
|
||||
|
||||
self.user = user.objects.create_user(
|
||||
username='username',
|
||||
email='user@email.com',
|
||||
@ -83,7 +83,7 @@ class SupplierPartViewTests(CompanyViewTestBase):
|
||||
def test_supplier_part_create(self):
|
||||
"""
|
||||
Test the SupplierPartCreate view.
|
||||
|
||||
|
||||
This view allows some additional functionality,
|
||||
specifically it allows the user to create a single-quantity price break
|
||||
automatically, when saving the new SupplierPart model.
|
||||
@ -171,7 +171,7 @@ class SupplierPartViewTests(CompanyViewTestBase):
|
||||
'confirm_delete': True
|
||||
},
|
||||
HTTP_X_REQUESTED_WITH='XMLHttpRequest')
|
||||
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
self.assertEqual(n - 2, SupplierPart.objects.count())
|
||||
@ -213,7 +213,7 @@ class ManufacturerPartViewTests(CompanyViewTestBase):
|
||||
"""
|
||||
Test the ManufacturerPartCreate view.
|
||||
"""
|
||||
|
||||
|
||||
url = reverse('manufacturer-part-create')
|
||||
|
||||
# First check that we can GET the form
|
||||
@ -252,7 +252,7 @@ class ManufacturerPartViewTests(CompanyViewTestBase):
|
||||
"""
|
||||
Test that the SupplierPartCreate view creates Manufacturer Part.
|
||||
"""
|
||||
|
||||
|
||||
url = reverse('supplier-part-create')
|
||||
|
||||
# First check that we can GET the form
|
||||
@ -297,7 +297,7 @@ class ManufacturerPartViewTests(CompanyViewTestBase):
|
||||
'confirm_delete': True
|
||||
},
|
||||
HTTP_X_REQUESTED_WITH='XMLHttpRequest')
|
||||
|
||||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
# Check that the ManufacturerPart was deleted
|
||||
|
@ -71,7 +71,7 @@ class CompanySimpleTest(TestCase):
|
||||
acme = Company.objects.get(pk=1)
|
||||
appel = Company.objects.get(pk=2)
|
||||
zerg = Company.objects.get(pk=3)
|
||||
|
||||
|
||||
self.assertTrue(acme.has_parts)
|
||||
self.assertEqual(acme.supplied_part_count, 4)
|
||||
|
||||
@ -82,7 +82,7 @@ class CompanySimpleTest(TestCase):
|
||||
self.assertEqual(zerg.supplied_part_count, 2)
|
||||
|
||||
def test_price_breaks(self):
|
||||
|
||||
|
||||
self.assertTrue(self.acme0001.has_price_breaks)
|
||||
self.assertTrue(self.acme0002.has_price_breaks)
|
||||
self.assertTrue(self.zergm312.has_price_breaks)
|
||||
@ -121,7 +121,7 @@ class CompanySimpleTest(TestCase):
|
||||
pmin, pmax = m2x4.get_price_range(5)
|
||||
self.assertEqual(pmin, 35)
|
||||
self.assertEqual(pmax, 37.5)
|
||||
|
||||
|
||||
m3x12 = Part.objects.get(name='M3x12 SHCS')
|
||||
|
||||
self.assertEqual(m3x12.get_price_info(0.3), Decimal('2.4'))
|
||||
@ -187,14 +187,14 @@ class ManufacturerPartSimpleTest(TestCase):
|
||||
# Create a manufacturer part
|
||||
self.part = Part.objects.get(pk=1)
|
||||
manufacturer = Company.objects.get(pk=1)
|
||||
|
||||
|
||||
self.mp = ManufacturerPart.create(
|
||||
part=self.part,
|
||||
manufacturer=manufacturer,
|
||||
mpn='PART_NUMBER',
|
||||
description='THIS IS A MANUFACTURER PART',
|
||||
)
|
||||
|
||||
|
||||
# Create a supplier part
|
||||
supplier = Company.objects.get(pk=5)
|
||||
supplier_part = SupplierPart.objects.create(
|
||||
|
@ -55,7 +55,7 @@ price_break_urls = [
|
||||
|
||||
manufacturer_part_detail_urls = [
|
||||
url(r'^edit/?', views.ManufacturerPartEdit.as_view(), name='manufacturer-part-edit'),
|
||||
|
||||
|
||||
url(r'^suppliers/', views.ManufacturerPartDetail.as_view(template_name='company/manufacturer_part_suppliers.html'), name='manufacturer-part-suppliers'),
|
||||
|
||||
url('^.*$', views.ManufacturerPartDetail.as_view(template_name='company/manufacturer_part_suppliers.html'), name='manufacturer-part-detail'),
|
||||
|
@ -96,7 +96,7 @@ class CompanyIndex(InvenTreeRoleMixin, ListView):
|
||||
if self.request.path == item:
|
||||
context = lookup[item]
|
||||
break
|
||||
|
||||
|
||||
if context is None:
|
||||
context = default
|
||||
|
||||
@ -279,7 +279,7 @@ class CompanyCreate(AjaxCreateView):
|
||||
|
||||
if url == reverse('supplier-create'):
|
||||
return _("Create new Supplier")
|
||||
|
||||
|
||||
if url == reverse('manufacturer-create'):
|
||||
return _('Create new Manufacturer')
|
||||
|
||||
@ -298,7 +298,7 @@ class CompanyCreate(AjaxCreateView):
|
||||
initials['is_supplier'] = True
|
||||
initials['is_customer'] = False
|
||||
initials['is_manufacturer'] = False
|
||||
|
||||
|
||||
elif url == reverse('manufacturer-create'):
|
||||
initials['is_manufacturer'] = True
|
||||
initials['is_supplier'] = True
|
||||
@ -319,7 +319,7 @@ class CompanyCreate(AjaxCreateView):
|
||||
|
||||
class CompanyDelete(AjaxDeleteView):
|
||||
""" View for deleting a Company object """
|
||||
|
||||
|
||||
model = Company
|
||||
success_url = '/company/'
|
||||
ajax_template_name = 'company/delete.html'
|
||||
@ -415,7 +415,7 @@ class ManufacturerPartCreate(AjaxCreateView):
|
||||
initials['manufacturer'] = Company.objects.get(pk=manufacturer_id)
|
||||
except (ValueError, Company.DoesNotExist):
|
||||
pass
|
||||
|
||||
|
||||
if part_id:
|
||||
try:
|
||||
initials['part'] = Part.objects.get(pk=part_id)
|
||||
@ -427,7 +427,7 @@ class ManufacturerPartCreate(AjaxCreateView):
|
||||
|
||||
class ManufacturerPartDelete(AjaxDeleteView):
|
||||
""" Delete view for removing a ManufacturerPart.
|
||||
|
||||
|
||||
ManufacturerParts can be deleted using a variety of 'selectors'.
|
||||
|
||||
- ?part=<pk> -> Delete a single ManufacturerPart object
|
||||
@ -561,7 +561,7 @@ class SupplierPartEdit(AjaxUpdateView):
|
||||
initials = super(SupplierPartEdit, self).get_initial().copy()
|
||||
|
||||
supplier_part = self.get_object()
|
||||
|
||||
|
||||
if supplier_part.manufacturer_part:
|
||||
initials['manufacturer'] = supplier_part.manufacturer_part.manufacturer.id
|
||||
initials['MPN'] = supplier_part.manufacturer_part.MPN
|
||||
@ -686,7 +686,7 @@ class SupplierPartCreate(AjaxCreateView):
|
||||
initials['MPN'] = manufacturer_part_obj.MPN
|
||||
except (ValueError, ManufacturerPart.DoesNotExist, Part.DoesNotExist, Company.DoesNotExist):
|
||||
pass
|
||||
|
||||
|
||||
if part_id:
|
||||
try:
|
||||
initials['part'] = Part.objects.get(pk=part_id)
|
||||
@ -703,13 +703,13 @@ class SupplierPartCreate(AjaxCreateView):
|
||||
|
||||
if currency_code:
|
||||
initials['single_pricing'] = ('', currency)
|
||||
|
||||
|
||||
return initials
|
||||
|
||||
|
||||
class SupplierPartDelete(AjaxDeleteView):
|
||||
""" Delete view for removing a SupplierPart.
|
||||
|
||||
|
||||
SupplierParts can be deleted using a variety of 'selectors'.
|
||||
|
||||
- ?part=<pk> -> Delete a single SupplierPart object
|
||||
@ -840,7 +840,7 @@ class PriceBreakCreate(AjaxCreateView):
|
||||
|
||||
# Extract the currency object associated with the code
|
||||
currency = CURRENCIES.get(currency_code, None)
|
||||
|
||||
|
||||
if currency:
|
||||
initials['price'] = [1.0, currency]
|
||||
|
||||
|
Reference in New Issue
Block a user