barseghyanartur / django-fobi

Form generator/builder application for Django done right: customisable, modular, user- and developer- friendly.
https://pypi.python.org/pypi/django-fobi
485 stars 112 forks source link

form_handlers.db_store return created SavedFormDataEntry #304

Closed Sebastiaan-Alvarez-Rodriguez closed 1 year ago

Sebastiaan-Alvarez-Rodriguez commented 1 year ago

Description

This small merge request changes form_handlers.db_store.run and form_handlers.db_store.save_form_data_entry. It changes form_handlers.db_store.run return signature:

from None to (True, instance of fobi.contrib.plugins.form_handler.db_store.models.SavedFormDataEntry)

The reason I want this

I have a booking, which customers can make using an 'intake form'. It looks like:

class Booking(models.Model):
    primary_key = models.CharField(primary_key=True, max_length=idgen_len, default=idgen)
    customer = models.ForeignKey(Customer, on_delete=models.CASCADE, related_name='customer')
    form = models.ForeignKey(SavedFormDataEntry, on_delete=models.CASCADE, related_name='form')
    event_type = models.ForeignKey(EventType, on_delete=models.CASCADE, related_name='event_type')
    # ... other fields

I store the forms using this db_store plugin, and want to reference them. With the changes, I can do this:


success, saved_form_data_entry = dbstorehandler_plugin._run(form_entry, request, form, form_element_entries)
Booking(
    customer = customer,
    form = saved_form_data_entry,
    event_type = event_type,
    # other fields...
)```
barseghyanartur commented 1 year ago

@Sebastiaan-Alvarez-Rodriguez:

Thanks for your contribution. I'll check it ASAP.

barseghyanartur commented 1 year ago

I'll make a release one of these days.

barseghyanartur commented 1 year ago

Released in 0.19.8.