mirror of
https://github.com/daniviga/django-ram.git
synced 2025-08-04 13:17:50 +02:00
Add shop field (from properties) (#48)
* Add shop field (from properties) * Update template
This commit is contained in:
@@ -151,7 +151,7 @@ class RollingStockAdmin(SortableAdminBase, admin.ModelAdmin):
|
||||
RollingStockDocInline,
|
||||
RollingStockJournalInline,
|
||||
)
|
||||
autocomplete_fields = ("rolling_class",)
|
||||
autocomplete_fields = ("rolling_class", "shop")
|
||||
readonly_fields = ("preview", "creation_time", "updated_time")
|
||||
list_display = (
|
||||
"__str__",
|
||||
@@ -220,6 +220,7 @@ class RollingStockAdmin(SortableAdminBase, admin.ModelAdmin):
|
||||
"Purchase data",
|
||||
{
|
||||
"fields": (
|
||||
"shop",
|
||||
"purchase_date",
|
||||
"price",
|
||||
)
|
||||
@@ -266,6 +267,7 @@ class RollingStockAdmin(SortableAdminBase, admin.ModelAdmin):
|
||||
"Decoder Interface",
|
||||
"Decoder",
|
||||
"Address",
|
||||
"Shop",
|
||||
"Purchase Date",
|
||||
"Price ({})".format(get_site_conf().currency),
|
||||
"Properties",
|
||||
@@ -297,6 +299,7 @@ class RollingStockAdmin(SortableAdminBase, admin.ModelAdmin):
|
||||
obj.decoder,
|
||||
obj.address,
|
||||
obj.purchase_date,
|
||||
obj.shop,
|
||||
obj.price,
|
||||
properties,
|
||||
]
|
||||
|
46
ram/roster/migrations/0034_rollingstock_shop.py
Normal file
46
ram/roster/migrations/0034_rollingstock_shop.py
Normal file
@@ -0,0 +1,46 @@
|
||||
# Generated by Django 5.1.4 on 2025-01-26 14:32
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
def shop_from_property(apps, schema_editor):
|
||||
rolling_stock = apps.get_model("roster", "RollingStock")
|
||||
shop_model = apps.get_model("metadata", "Shop")
|
||||
for row in rolling_stock.objects.all():
|
||||
property = row.property.filter(
|
||||
property__name__icontains="shop"
|
||||
).first()
|
||||
if property:
|
||||
shop, created = shop_model.objects.get_or_create(
|
||||
name=property.value,
|
||||
defaults={"on_line": False}
|
||||
)
|
||||
|
||||
row.shop = shop
|
||||
row.save()
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("metadata", "0023_shop"),
|
||||
("roster", "0033_rename_manufacturer_rollingclass_manufacturer_old"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="rollingstock",
|
||||
name="shop",
|
||||
field=models.ForeignKey(
|
||||
blank=True,
|
||||
null=True,
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
to="metadata.shop",
|
||||
),
|
||||
),
|
||||
migrations.RunPython(
|
||||
shop_from_property,
|
||||
reverse_code=migrations.RunPython.noop
|
||||
),
|
||||
]
|
@@ -14,6 +14,7 @@ from ram.managers import PublicManager
|
||||
from metadata.models import (
|
||||
Scale,
|
||||
Manufacturer,
|
||||
Shop,
|
||||
Decoder,
|
||||
Company,
|
||||
Tag,
|
||||
@@ -102,6 +103,9 @@ class RollingStock(BaseModel):
|
||||
help_text="Era or epoch of the model",
|
||||
)
|
||||
production_year = models.SmallIntegerField(null=True, blank=True)
|
||||
shop = models.ForeignKey(
|
||||
Shop, on_delete=models.CASCADE, null=True, blank=True
|
||||
)
|
||||
purchase_date = models.DateField(null=True, blank=True)
|
||||
price = models.DecimalField(
|
||||
max_digits=10,
|
||||
|
@@ -29,5 +29,5 @@ class RollingStockSerializer(serializers.ModelSerializer):
|
||||
|
||||
class Meta:
|
||||
model = RollingStock
|
||||
exclude = ("purchase_date", "price",)
|
||||
exclude = ("shop", "purchase_date", "price",)
|
||||
read_only_fields = ("creation_time", "updated_time")
|
||||
|
Reference in New Issue
Block a user