diff --git a/assets/migrations/0027_asset_nickname.py b/assets/migrations/0027_asset_nickname.py new file mode 100644 index 00000000..630d2367 --- /dev/null +++ b/assets/migrations/0027_asset_nickname.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.16 on 2022-12-11 00:26 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('assets', '0026_auto_20220526_1623'), + ] + + operations = [ + migrations.AddField( + model_name='asset', + name='nickname', + field=models.CharField(blank=True, max_length=120), + ), + ] diff --git a/assets/models.py b/assets/models.py index 365fd5d6..ef535fa4 100644 --- a/assets/models.py +++ b/assets/models.py @@ -95,7 +95,7 @@ class AssetManager(models.Manager): def search(self, query=None): qs = self.get_queryset() if query is not None: - or_lookup = (Q(asset_id__exact=query.upper()) | Q(description__icontains=query) | Q(serial_number__exact=query)) + or_lookup = (Q(asset_id__exact=query.upper()) | Q(description__icontains=query) | Q(serial_number__exact=query) | Q(nickname__icontains=query)) qs = qs.filter(or_lookup).distinct() # distinct() is often necessary with Q lookups return qs @@ -125,6 +125,7 @@ class Asset(models.Model, RevisionMixin): purchase_price = models.DecimalField(blank=True, null=True, decimal_places=2, max_digits=10, validators=[validate_positive]) replacement_cost = models.DecimalField(null=True, decimal_places=2, max_digits=10, validators=[validate_positive]) comments = models.TextField(blank=True) + nickname = models.CharField(max_length=120, blank=True) # Audit last_audited_at = models.DateTimeField(blank=True, null=True) diff --git a/assets/templates/partials/asset_detail_form.html b/assets/templates/partials/asset_detail_form.html index 970bfce9..8b382d34 100644 --- a/assets/templates/partials/asset_detail_form.html +++ b/assets/templates/partials/asset_detail_form.html @@ -21,6 +21,10 @@ {% render_field form.description|add_class:'form-control' value=object.description %} +