Merge remote-tracking branch 'inventree/master'

This commit is contained in:
Oliver Walters 2019-09-13 16:41:34 +10:00
commit 2be99be4de
3 changed files with 43 additions and 4 deletions

View File

@ -4,7 +4,7 @@ Provides information on the current InvenTree version
import subprocess import subprocess
INVENTREE_SW_VERSION = "0.0.5" INVENTREE_SW_VERSION = "0.0.6"
def inventreeVersion(): def inventreeVersion():
@ -15,7 +15,6 @@ def inventreeVersion():
def inventreeCommitHash(): def inventreeCommitHash():
""" Returns the git commit hash for the running codebase """ """ Returns the git commit hash for the running codebase """
# TODO - This doesn't seem to work when running under gunicorn. Why is this?!
commit = str(subprocess.check_output('git rev-parse --short HEAD'.split()), 'utf-8').strip() commit = str(subprocess.check_output('git rev-parse --short HEAD'.split()), 'utf-8').strip()
return commit return commit

View File

@ -1741,7 +1741,7 @@ class BomItemCreate(AjaxCreateView):
form.fields['part'].widget = HiddenInput() form.fields['part'].widget = HiddenInput()
except Part.DoesNotExist: except (ValueError, Part.DoesNotExist):
pass pass
return form return form
@ -1775,6 +1775,46 @@ class BomItemEdit(AjaxUpdateView):
ajax_template_name = 'modal_form.html' ajax_template_name = 'modal_form.html'
ajax_form_title = 'Edit BOM item' ajax_form_title = 'Edit BOM item'
def get_form(self):
""" Override get_form() method to filter part selection options
- Do not allow part to be added to its own BOM
- Remove any part items that are already in the BOM
"""
form = super().get_form()
part_id = form['part'].value()
try:
part = Part.objects.get(pk=part_id)
query = form.fields['sub_part'].queryset
# Reduce the available selection options
query = query.exclude(pk=part_id)
# Eliminate any options that are already in the BOM,
# *except* for the item which is already selected
try:
sub_part_id = int(form['sub_part'].value())
except ValueError:
sub_part_id = -1
existing = [item.pk for item in part.required_parts()]
if sub_part_id in existing:
existing.remove(sub_part_id)
query = query.exclude(id__in=existing)
form.fields['sub_part'].queryset = query
except (ValueError, Part.DoesNotExist):
pass
return form
class BomItemDelete(AjaxDeleteView): class BomItemDelete(AjaxDeleteView):
""" Delete view for removing BomItem """ """ Delete view for removing BomItem """

View File

@ -70,7 +70,7 @@ Create an initial superuser (administrator) account for the InvenTree instance:
Run Development Server Run Development Server
---------------------- ----------------------
Run ``python3 InvenTree/manage.py runserver 127.0.0.1:8000`` to launch a development server. This will launch the InvenTree web interface at ``127.0.0.1:8000``. For other options refer to the `django docs <https://docs.djangoproject.com/en/2.2/ref/django-admin/>`_. Run ``cd InvenTree && python3 manage.py runserver 127.0.0.1:8000`` to launch a development server. This will launch the InvenTree web interface at ``127.0.0.1:8000``. For other options refer to the `django docs <https://docs.djangoproject.com/en/2.2/ref/django-admin/>`_.
Database Migrations Database Migrations
------------------- -------------------