add_lots_initial_data and other demo facilities #60

Merged
pedro merged 4 commits from add_lots_initial_data into main 2025-02-25 13:01:52 +00:00
6 changed files with 89 additions and 13 deletions

View file

@ -147,6 +147,7 @@ run_demo() {
'example/demo-snapshots-vc/snapshot_pre-verifiable-credential.json' \ 'example/demo-snapshots-vc/snapshot_pre-verifiable-credential.json' \
> 'example/snapshots/snapshot_workbench-script_verifiable-credential.json' > 'example/snapshots/snapshot_workbench-script_verifiable-credential.json'
fi fi
./manage.py create_default_states "${INIT_ORG}"
/usr/bin/time ./manage.py up_snapshots example/snapshots/ "${INIT_USER}" /usr/bin/time ./manage.py up_snapshots example/snapshots/ "${INIT_USER}"
} }

View file

@ -0,0 +1,18 @@
# Generated by Django 5.0.6 on 2025-02-25 12:32
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('lot', '0007_lottag_inbox'),
]
operations = [
migrations.RenameField(
model_name='lot',
old_name='closed',
new_name='archived',
),
]

View file

@ -32,7 +32,7 @@ class Lot(models.Model):
name = models.CharField(max_length=STR_SIZE, blank=True, null=True) name = models.CharField(max_length=STR_SIZE, blank=True, null=True)
code = models.CharField(max_length=STR_SIZE, blank=True, null=True) code = models.CharField(max_length=STR_SIZE, blank=True, null=True)
description = models.CharField(max_length=STR_SIZE, blank=True, null=True) description = models.CharField(max_length=STR_SIZE, blank=True, null=True)
closed = models.BooleanField(default=False) archived = models.BooleanField(default=False)
owner = models.ForeignKey(Institution, on_delete=models.CASCADE) owner = models.ForeignKey(Institution, on_delete=models.CASCADE)
user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True) user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True)
type = models.ForeignKey(LotTag, on_delete=models.CASCADE) type = models.ForeignKey(LotTag, on_delete=models.CASCADE)

View file

@ -7,13 +7,13 @@
<h3>{{ subtitle }}</h3> <h3>{{ subtitle }}</h3>
</div> </div>
<div class="col text-center"> <div class="col text-center">
{% if show_closed %} {% if show_archived %}
<a href="?show_closed=false" class="btn btn-green-admin"> <a href="?show_archived=false" class="btn btn-green-admin">
{% trans 'Hide closed lots' %} {% trans 'Show active lots' %}
</a> </a>
{% else %} {% else %}
<a href="?show_closed=true" class="btn btn-green-admin"> <a href="?show_archived=true" class="btn btn-green-admin">
{% trans 'Show closed lots' %} {% trans 'Show archived lots' %}
</a> </a>
{% endif %} {% endif %}

View file

@ -25,7 +25,7 @@ class NewLotView(DashboardView, CreateView):
"name", "name",
"code", "code",
"description", "description",
"closed", "archived",
) )
def get_form(self): def get_form(self):
@ -54,7 +54,7 @@ class DeleteLotView(DashboardView, DeleteView):
"name", "name",
"code", "code",
"description", "description",
"closed", "archived",
) )
def form_valid(self, form): def form_valid(self, form):
@ -73,7 +73,7 @@ class EditLotView(DashboardView, UpdateView):
"name", "name",
"code", "code",
"description", "description",
"closed", "archived",
) )
def get_form_kwargs(self): def get_form_kwargs(self):
@ -149,15 +149,15 @@ class LotsTagsView(DashboardView, TemplateView):
tag = get_object_or_404(LotTag, owner=self.request.user.institution, id=self.pk) tag = get_object_or_404(LotTag, owner=self.request.user.institution, id=self.pk)
self.title += " {}".format(tag.name) self.title += " {}".format(tag.name)
self.breadcrumb += " {}".format(tag.name) self.breadcrumb += " {}".format(tag.name)
show_closed = self.request.GET.get('show_closed', 'false') == 'true' show_archived = self.request.GET.get('show_archived', 'false') == 'true'
lots = Lot.objects.filter(owner=self.request.user.institution).filter( lots = Lot.objects.filter(owner=self.request.user.institution).filter(
type=tag, closed=show_closed type=tag, archived=show_archived
) )
context.update({ context.update({
'lots': lots, 'lots': lots,
'title': self.title, 'title': self.title,
'breadcrumb': self.breadcrumb, 'breadcrumb': self.breadcrumb,
'show_closed': show_closed 'show_archived': show_archived
}) })
return context return context

View file

@ -1,6 +1,6 @@
from django.core.management.base import BaseCommand from django.core.management.base import BaseCommand
from user.models import Institution from user.models import Institution
from lot.models import LotTag from lot.models import LotTag, Lot
class Command(BaseCommand): class Command(BaseCommand):
@ -12,6 +12,7 @@ class Command(BaseCommand):
def handle(self, *args, **kwargs): def handle(self, *args, **kwargs):
self.institution = Institution.objects.create(name=kwargs['name']) self.institution = Institution.objects.create(name=kwargs['name'])
self.create_lot_tags() self.create_lot_tags()
self.create_lots()
def create_lot_tags(self): def create_lot_tags(self):
LotTag.objects.create( LotTag.objects.create(
@ -29,3 +30,59 @@ class Command(BaseCommand):
name=tag, name=tag,
owner=self.institution owner=self.institution
) )
def create_lots(self):
for g in LotTag.objects.all():
if g.name == "Entrada":
Lot.objects.create(
name="donante-orgA",
owner=self.institution,
archived=True,
type=g
)
Lot.objects.create(
name="donante-orgB",
owner=self.institution,
type=g
)
Lot.objects.create(
name="donante-orgC",
owner=self.institution,
type=g
)
if g.name == "Salida":
Lot.objects.create(
name="beneficiario-org1",
owner=self.institution,
type=g
)
Lot.objects.create(
name="beneficiario-org2",
owner=self.institution,
archived=True,
type=g
)
Lot.objects.create(
name="beneficiario-org3",
owner=self.institution,
type=g
)
if g.name == "Temporal":
Lot.objects.create(
name="palet1",
owner=self.institution,
type=g
)
Lot.objects.create(
name="palet2",
owner=self.institution,
type=g
)
Lot.objects.create(
name="palet3",
owner=self.institution,
archived=True,
type=g
)