mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Merge pull request #668 from SchrodingersGat/part-creation-details
Part creation details
This commit is contained in:
commit
1259cea2c3
@ -126,6 +126,24 @@ class PartList(generics.ListCreateAPIView):
|
||||
|
||||
serializer_class = part_serializers.PartSerializer
|
||||
|
||||
def create(self, request, *args, **kwargs):
|
||||
""" Override the default 'create' behaviour:
|
||||
We wish to save the user who created this part!
|
||||
|
||||
Note: Implementation coped from DRF class CreateModelMixin
|
||||
"""
|
||||
|
||||
serializer = self.get_serializer(data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
|
||||
# Record the user who created this Part object
|
||||
part = serializer.save()
|
||||
part.creation_user = request.user
|
||||
part.save()
|
||||
|
||||
headers = self.get_success_headers(serializer.data)
|
||||
return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
|
||||
|
||||
def list(self, request, *args, **kwargs):
|
||||
"""
|
||||
Instead of using the DRF serialiser to LIST,
|
||||
|
31
InvenTree/part/migrations/0031_auto_20200318_1044.py
Normal file
31
InvenTree/part/migrations/0031_auto_20200318_1044.py
Normal file
@ -0,0 +1,31 @@
|
||||
# Generated by Django 2.2.9 on 2020-03-18 10:44
|
||||
|
||||
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', '0030_auto_20200318_1027'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='part',
|
||||
name='creation_date',
|
||||
field=models.DateField(auto_now_add=True, null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='part',
|
||||
name='creation_user',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='parts_created', to=settings.AUTH_USER_MODEL),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='part',
|
||||
name='responsible',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='parts_responible', to=settings.AUTH_USER_MODEL),
|
||||
),
|
||||
]
|
@ -226,6 +226,9 @@ class Part(models.Model):
|
||||
active: Is this part active? Parts are deactivated instead of being deleted
|
||||
virtual: Is this part "virtual"? e.g. a software product or similar
|
||||
notes: Additional notes field for this part
|
||||
creation_date: Date that this part was added to the database
|
||||
creation_user: User who added this part to the database
|
||||
responsible: User who is responsible for this part (optional)
|
||||
"""
|
||||
|
||||
class Meta:
|
||||
@ -448,6 +451,12 @@ class Part(models.Model):
|
||||
|
||||
bom_checked_date = models.DateField(blank=True, null=True)
|
||||
|
||||
creation_date = models.DateField(auto_now_add=True, editable=False, blank=True, null=True)
|
||||
|
||||
creation_user = models.ForeignKey(User, on_delete=models.SET_NULL, blank=True, null=True, related_name='parts_created')
|
||||
|
||||
responsible = models.ForeignKey(User, on_delete=models.SET_NULL, blank=True, null=True, related_name='parts_responible')
|
||||
|
||||
def format_barcode(self):
|
||||
""" Return a JSON string for formatting a barcode for this Part object """
|
||||
|
||||
|
@ -83,6 +83,22 @@
|
||||
<td>{{ part.minimum_stock }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
<tr>
|
||||
<td><b>{% trans "Creation Date" %}</b></td>
|
||||
<td>{{ part.creation_date }}</td>
|
||||
</tr>
|
||||
{% if part.creation_user %}
|
||||
<tr>
|
||||
<td><b>{% trans "Created By" %}</b></td>
|
||||
<td>{{ part.creation_user }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% if part.responsible %}
|
||||
<tr>
|
||||
<td><b>{% trans "Responsible User" %}</b></td>
|
||||
<td>{{ part.responsible }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
</table>
|
||||
</div>
|
||||
<div class='col-sm-6'>
|
||||
|
@ -366,7 +366,10 @@ class PartDuplicate(AjaxCreateView):
|
||||
|
||||
if valid:
|
||||
# Create the new Part
|
||||
part = form.save()
|
||||
part = form.save(commit=False)
|
||||
|
||||
part.creation_user = request.user
|
||||
part.save()
|
||||
|
||||
data['pk'] = part.pk
|
||||
data['text'] = str(part)
|
||||
@ -488,7 +491,12 @@ class PartCreate(AjaxCreateView):
|
||||
|
||||
if valid:
|
||||
# Create the new Part
|
||||
part = form.save()
|
||||
part = form.save(commit=False)
|
||||
|
||||
# Record the user who created this part
|
||||
part.creation_user = request.user
|
||||
|
||||
part.save()
|
||||
|
||||
data['pk'] = part.pk
|
||||
data['text'] = str(part)
|
||||
|
Loading…
Reference in New Issue
Block a user