Merge remote-tracking branch 'inventree/master'

This commit is contained in:
Oliver Walters 2020-11-11 17:04:06 +11:00
commit 2d08fe1903
5 changed files with 22 additions and 3 deletions

View File

@ -155,6 +155,8 @@ INSTALLED_APPS = [
'markdownify', # Markdown template rendering 'markdownify', # Markdown template rendering
'django_tex', # LaTeX output 'django_tex', # LaTeX output
'django_admin_shell', # Python shell for the admin interface 'django_admin_shell', # Python shell for the admin interface
'error_report', # Error reporting in the admin interface
] ]
LOGGING = { LOGGING = {
@ -181,6 +183,9 @@ MIDDLEWARE = CONFIG.get('middleware', [
'InvenTree.middleware.AuthRequiredMiddleware' 'InvenTree.middleware.AuthRequiredMiddleware'
]) ])
# Error reporting middleware
MIDDLEWARE.append('error_report.middleware.ExceptionProcessor')
AUTHENTICATION_BACKENDS = CONFIG.get('authentication_backends', [ AUTHENTICATION_BACKENDS = CONFIG.get('authentication_backends', [
'django.contrib.auth.backends.ModelBackend' 'django.contrib.auth.backends.ModelBackend'
]) ])

View File

@ -126,6 +126,7 @@ urlpatterns = [
url(r'^edit-user/', EditUserView.as_view(), name='edit-user'), url(r'^edit-user/', EditUserView.as_view(), name='edit-user'),
url(r'^set-password/', SetPasswordView.as_view(), name='set-password'), url(r'^set-password/', SetPasswordView.as_view(), name='set-password'),
url(r'^admin/error_log/', include('error_report.urls')),
url(r'^admin/shell/', include('django_admin_shell.urls')), url(r'^admin/shell/', include('django_admin_shell.urls')),
url(r'^admin/', admin.site.urls, name='inventree-admin'), url(r'^admin/', admin.site.urls, name='inventree-admin'),

View File

@ -571,7 +571,8 @@ class Part(MPTTModel):
super().clean() super().clean()
if self.trackable: if self.trackable:
for parent_part in self.used_in.all(): for item in self.used_in.all():
parent_part = item.part
if not parent_part.trackable: if not parent_part.trackable:
parent_part.trackable = True parent_part.trackable = True
parent_part.clean() parent_part.clean()
@ -1041,8 +1042,16 @@ class Part(MPTTModel):
- Exclude parts which this part is in the BOM for - Exclude parts which this part is in the BOM for
""" """
parts = Part.objects.filter(component=True).exclude(id=self.id) # Start with a list of all parts designated as 'sub components'
parts = parts.exclude(id__in=[part.id for part in self.used_in.all()]) parts = Part.objects.filter(component=True)
# Exclude this part
parts = parts.exclude(id=self.id)
# Exclude any parts that this part is used *in* (to prevent recursive BOMs)
used_in = self.used_in.all()
parts = parts.exclude(id__in=[item.part.id for item in used_in])
return parts return parts

View File

@ -109,6 +109,9 @@ class RuleSet(models.Model):
'report_reportasset', 'report_reportasset',
'report_testreport', 'report_testreport',
'part_partstar', 'part_partstar',
# Third-party tables
'error_report_error',
] ]
RULE_OPTIONS = [ RULE_OPTIONS = [

View File

@ -26,5 +26,6 @@ django-tex==1.1.7 # LaTeX PDF export
django-weasyprint==1.0.1 # HTML PDF export django-weasyprint==1.0.1 # HTML PDF export
django-debug-toolbar==2.2 # Debug / profiling toolbar django-debug-toolbar==2.2 # Debug / profiling toolbar
django-admin-shell==0.1.2 # Python shell for the admin interface django-admin-shell==0.1.2 # Python shell for the admin interface
django-error-report==0.2.0 # Error report viewer for the admin interface
inventree # Install the latest version of the InvenTree API python library inventree # Install the latest version of the InvenTree API python library