diff --git a/InvenTree/build/migrations/0038_alter_build_responsible.py b/InvenTree/build/migrations/0038_alter_build_responsible.py new file mode 100644 index 0000000000..09953c01ab --- /dev/null +++ b/InvenTree/build/migrations/0038_alter_build_responsible.py @@ -0,0 +1,20 @@ +# Generated by Django 3.2.16 on 2023-02-09 23:52 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('users', '0005_owner_model'), + ('build', '0037_build_priority'), + ] + + operations = [ + migrations.AlterField( + model_name='build', + name='responsible', + field=models.ForeignKey(blank=True, help_text='User or group responsible for this build order', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='builds_responsible', to='users.owner', verbose_name='Responsible'), + ), + ] diff --git a/InvenTree/build/models.py b/InvenTree/build/models.py index 2fa1b7cb25..13b09ce000 100644 --- a/InvenTree/build/models.py +++ b/InvenTree/build/models.py @@ -282,7 +282,7 @@ class Build(MPTTModel, ReferenceIndexingMixin): on_delete=models.SET_NULL, blank=True, null=True, verbose_name=_('Responsible'), - help_text=_('User responsible for this build order'), + help_text=_('User or group responsible for this build order'), related_name='builds_responsible', ) diff --git a/InvenTree/part/migrations/0095_alter_part_responsible.py b/InvenTree/part/migrations/0095_alter_part_responsible.py new file mode 100644 index 0000000000..11ffd3a535 --- /dev/null +++ b/InvenTree/part/migrations/0095_alter_part_responsible.py @@ -0,0 +1,21 @@ +# Generated by Django 3.2.16 on 2023-02-09 23:52 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('part', '0094_alter_part_units'), + ] + + operations = [ + migrations.AlterField( + model_name='part', + name='responsible', + field=models.ForeignKey(blank=True, help_text='User responsible for this part', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='parts_responible', to=settings.AUTH_USER_MODEL, verbose_name='Responsible'), + ), + ] diff --git a/InvenTree/part/models.py b/InvenTree/part/models.py index 96ffca62a4..c91d0d393f 100644 --- a/InvenTree/part/models.py +++ b/InvenTree/part/models.py @@ -1003,7 +1003,7 @@ class Part(InvenTreeBarcodeMixin, MetadataMixin, MPTTModel): creation_user = models.ForeignKey(User, on_delete=models.SET_NULL, blank=True, null=True, verbose_name=_('Creation User'), related_name='parts_created') - responsible = models.ForeignKey(User, on_delete=models.SET_NULL, blank=True, null=True, verbose_name=_('Responsible'), related_name='parts_responible') + responsible = models.ForeignKey(User, on_delete=models.SET_NULL, blank=True, null=True, verbose_name=_('Responsible'), help_text=_('User responsible for this part'), related_name='parts_responible') last_stocktake = models.DateField( blank=True, null=True, diff --git a/InvenTree/part/serializers.py b/InvenTree/part/serializers.py index c8b15aac9f..9745275407 100644 --- a/InvenTree/part/serializers.py +++ b/InvenTree/part/serializers.py @@ -621,6 +621,7 @@ class PartSerializer(RemoteImageMixin, InvenTreeModelSerializer): 'virtual', 'pricing_min', 'pricing_max', + 'responsible', # Fields only used for Part creation 'duplicate', diff --git a/InvenTree/part/templates/part/part_base.html b/InvenTree/part/templates/part/part_base.html index 93550543e7..85d78dcf37 100644 --- a/InvenTree/part/templates/part/part_base.html +++ b/InvenTree/part/templates/part/part_base.html @@ -391,6 +391,13 @@ {{ part.link }}{% include "clip.html"%} {% endif %} + {% if part.responsible %} + + + {% trans "Responsible" %} + {{ part.responsible }} + + {% endif %} diff --git a/InvenTree/templates/js/translated/part.js b/InvenTree/templates/js/translated/part.js index 229ef6fda9..1c0fa1460d 100644 --- a/InvenTree/templates/js/translated/part.js +++ b/InvenTree/templates/js/translated/part.js @@ -124,6 +124,9 @@ function partFields(options={}) { minimum_stock: { icon: 'fa-boxes', }, + responsible: { + icon: 'fa-user', + }, component: { default: global_settings.PART_COMPONENT, group: 'attributes',