form.collection
Attributes
Classes
Manages a collection of forms and form-submissions. |
|
Manages a collection of forms. |
|
Manages a collection of submissions. |
|
Abstract base class for generic types. |
|
Manages a collection of surveys. |
|
Manages a collection of survey submissions. |
|
Abstract base class for generic types. |
|
Manages a collection of surveys and survey-submissions. |
Module Contents
- class form.collection.FormCollection(session: sqlalchemy.orm.Session)[source]
Manages a collection of forms and form-submissions.
- property definitions: FormDefinitionCollection[source]
- property submissions: FormSubmissionCollection[source]
- property registration_windows: FormRegistrationWindowCollection[source]
- scoped_submissions(name: str, ensure_existance: Literal[False]) FormSubmissionCollection [source]
- scoped_submissions(name: str, ensure_existance: bool = True) FormSubmissionCollection | None
- get_definitions_with_submission_count() Iterator[FormDefinition] [source]
Returns all form definitions and the number of submissions belonging to those definitions, in a single query.
The number of submissions is stored on the form definition under the
submissions_count
attribute.Only submissions which are ‘complete’ are considered.
- class form.collection.FormDefinitionCollection(session: sqlalchemy.orm.Session)[source]
Manages a collection of forms.
- query() Query[FormDefinition] [source]
- add(title: str, definition: str, type: str = 'generic', meta: dict[str, Any] | None = None, content: dict[str, Any] | None = None, name: str | None = None, payment_method: onegov.pay.types.PaymentMethod = 'manual', pick_up: str | None = None) onegov.form.models.FormDefinition [source]
Add the given form to the database.
- delete(name: str, with_submissions: bool = False, with_registration_windows: bool = False, handle_submissions: SubmissionHandler | None = None, handle_registration_windows: RegistrationWindowHandler | None = None) None [source]
Delete the given form. Only possible if there are no submissions associated with it, or if
with_submissions
is True.Note that pending submissions are removed automatically, only complete submissions have a bearing on
with_submissions
.Pass two callbacks to handle additional logic before deleting the objects.
- class form.collection.FormSubmissionCollection(session: sqlalchemy.orm.Session, name: str | None = None)[source]
Manages a collection of submissions.
- query() Query[FormSubmission] [source]
- add(name: str | None, form: onegov.form.Form, state: onegov.form.types.SubmissionState, id: uuid.UUID | None = None, payment_method: PaymentMethod | None = None, minimum_price_total: float | None = None, meta: dict[str, Any] | None = None, email: str | None = None, spots: int | None = None) onegov.form.models.FormSubmission [source]
Takes a filled-out form instance and stores the submission in the database. The form instance is expected to have a
_source
parameter, which contains the source used to build the form (as only forms with this source may be stored).This method expects the name of the form definition stored in the database. Use
add_external()
to add a submissions whose definition is not stored in the form_definitions table.
- add_external(form: onegov.form.Form, state: onegov.form.types.SubmissionState, id: uuid.UUID | None = None, payment_method: PaymentMethod | None = None, minimum_price_total: float | None = None, meta: dict[str, Any] | None = None, email: str | None = None) onegov.form.models.FormSubmission [source]
Takes a filled-out form instance and stores the submission in the database. The form instance is expected to have a
_source
parameter, which contains the source used to build the form (as only forms with this source may be stored).In contrast to
add()
, this method is meant for submissions whose definition is not stored in the form_definitions table.
- complete_submission(submission: onegov.form.models.FormSubmission) None [source]
Changes the state to ‘complete’, if the data is valid.
- update(submission: onegov.form.models.FormSubmission, form: onegov.form.Form, exclude: Collection[str] | None = None) None [source]
Takes a submission and a form and updates the submission data as well as the files stored in a separate table.
- remove_old_pending_submissions(older_than: datetime.datetime, include_external: bool = False) None [source]
Removes all pending submissions older than the given date. The date is expected to be in UTC!
- by_state(state: onegov.form.types.SubmissionState) Query[FormSubmission] [source]
- by_name(name: str) list[onegov.form.models.FormSubmission] [source]
Return all submissions for the given form-name.
- class form.collection.FormRegistrationWindowCollection(session: sqlalchemy.orm.Session, name: str | None = None)[source]
Bases:
onegov.core.collection.GenericCollection
[onegov.form.models.FormRegistrationWindow
]Abstract base class for generic types.
A generic type is typically declared by inheriting from this class parameterized with one or more type variables. For example, a generic mapping type might be defined as:
class Mapping(Generic[KT, VT]): def __getitem__(self, key: KT) -> VT: ... # Etc.
This class can then be used as follows:
def lookup_name(mapping: Mapping[KT, VT], key: KT, default: VT) -> VT: try: return mapping[key] except KeyError: return default
- query() Query[FormRegistrationWindow] [source]
- class form.collection.SurveyDefinitionCollection(session: sqlalchemy.orm.Session)[source]
Manages a collection of surveys.
- query() Query[SurveyDefinition] [source]
- add(title: str, definition: str, type: str = 'generic', meta: dict[str, Any] | None = None, content: dict[str, Any] | None = None, name: str | None = None) onegov.form.models.definition.SurveyDefinition [source]
Add the given survey to the database.
- delete(name: str, with_submission_windows: bool = False, handle_submissions: SurveySubmissionHandler | None = None, handle_submission_windows: SubmissionWindowHandler | None = None) None [source]
Delete the given form. Only possible if there are no submissions associated with it, or if
with_submissions
is True.Note that pending submissions are removed automatically, only complete submissions have a bearing on
with_submissions
.Pass two callbacks to handle additional logic before deleting the objects.
- class form.collection.SurveySubmissionCollection(session: sqlalchemy.orm.Session, name: str | None = None)[source]
Manages a collection of survey submissions.
- query() Query[SurveySubmission] [source]
- add(name: str | None, form: onegov.form.Form, submission_window: onegov.form.models.survey_window.SurveySubmissionWindow | None = None, id: uuid.UUID | None = None, meta: dict[str, Any] | None = None) onegov.form.models.submission.SurveySubmission [source]
Takes a filled-out survey instance and stores the submission in the database. The survey instance is expected to have a
_source
parameter, which contains the source used to build the szrvey (as only surveys with this source may be stored).This method expects the name of the survey definition stored in the database. Use
add_external()
to add a submissions whose definition is not stored in the form_definitions table.
- update(submission: onegov.form.models.submission.SurveySubmission, form: onegov.form.Form, exclude: Collection[str] | None = None) None [source]
Takes a submission and a survey and updates the submission data as well as the files stored in a separate table.
- by_name(name: str) list[onegov.form.models.submission.SurveySubmission] [source]
Return all submissions for the given form-name.
- class form.collection.SurveySubmissionWindowCollection(session: sqlalchemy.orm.Session, name: str | None = None)[source]
Bases:
onegov.core.collection.GenericCollection
[onegov.form.models.survey_window.SurveySubmissionWindow
]Abstract base class for generic types.
A generic type is typically declared by inheriting from this class parameterized with one or more type variables. For example, a generic mapping type might be defined as:
class Mapping(Generic[KT, VT]): def __getitem__(self, key: KT) -> VT: ... # Etc.
This class can then be used as follows:
def lookup_name(mapping: Mapping[KT, VT], key: KT, default: VT) -> VT: try: return mapping[key] except KeyError: return default
- query() Query[SurveySubmissionWindow] [source]
- class form.collection.SurveyCollection(session: sqlalchemy.orm.Session)[source]
Manages a collection of surveys and survey-submissions.
- property definitions: SurveyDefinitionCollection[source]
- property submissions: SurveySubmissionCollection[source]
- property submission_windows: SurveySubmissionWindowCollection[source]
- scoped_submissions(name: str, ensure_existance: Literal[False]) SurveySubmissionCollection [source]
- scoped_submissions(name: str, ensure_existance: bool = True) SurveySubmissionCollection | None
- get_definitions_with_submission_count() Iterator[FormDefinition] [source]
Returns all form definitions and the number of submissions belonging to those definitions, in a single query.
The number of submissions is stored on the form definition under the
submissions_count
attribute.Only submissions which are ‘complete’ are considered.