Currently, the PDF is rendered 'on-demand' every time you
visit the booking detail page. This change renders the pdf once
and saves it in the booking model. Advantages:
- saves computation of re-rendering pdf constantly
- fixes issue where pdf fails to render after booking expires
Change-Id: I58d20fadce088d78ebd22f1d6f67cab371823542
Signed-off-by: Parker Berberian <pberberian@iol.unh.edu>
--- /dev/null
+# Generated by Django 2.1 on 2018-11-09 16:09
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('booking', '0001_initial'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='booking',
+ name='pdf',
+ field=models.TextField(blank=True, default=''),
+ ),
+ ]
config_bundle = models.ForeignKey(ConfigBundle, on_delete=models.SET_NULL, null=True)
project = models.CharField(max_length=100, default="", blank=True, null=True)
lab = models.ForeignKey(Lab, null=True, on_delete=models.SET_NULL)
+ pdf = models.TextField(blank=True, default="")
class Meta:
db_table = 'booking'
{
'title': 'Booking Details',
'booking': booking,
- 'pdf': ResourceManager().makePDF(booking.resource),
+ 'pdf': booking.pdf,
'user_id': user.id
})
for collaborator in collaborators:
booking.collaborators.add(collaborator)
+ try:
+ booking.pdf = ResourceManager().makePDF(booking.resource)
+ booking.save()
+ except Exception as e:
+ return "BOOK, failed to create Pod Desriptor File: " + str(e)
+
try:
JobFactory.makeCompleteJob(booking)
except Exception as e: