19.1.18. camcops_server.cc_modules.cc_forms¶
Copyright (C) 2012-2018 Rudolf Cardinal (rudolf@pobox.com).
This file is part of CamCOPS.
CamCOPS is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
CamCOPS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with CamCOPS. If not, see <http://www.gnu.org/licenses/>.
COLANDER NODES, NULLS, AND VALIDATION
Surprisingly tricky.
Nodes must be validly intialized with NO USER-DEFINED PARAMETERS to __init__; the Deform framework clones them.
A null appstruct is used to initialize nodes as Forms are created. Therefore, the “default” value must be acceptable to the underlying type’s serialize() function. Note in particular that “default = None” is not acceptable to Integer. Having no default is fine, though.
In general, flexible inheritance is very hard to implement.
Note that this error:
AttributeError: 'EditTaskFilterSchema' object has no attribute 'typ'
means you have failed to call super().__init__() properly from __init__().
When creating a schema, its members seem to have to be created in the class declaration as class properties, not in __init__().
-
class
camcops_server.cc_modules.cc_forms.AddCancelForm(schema_class: Type[colander.Schema], request: CamcopsRequest, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.AddIdDefinitionForm(request: CamcopsRequest, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.AddSpecialNoteForm(request: CamcopsRequest, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.AddUserGroupadminForm(request: CamcopsRequest, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.AddUserSuperuserForm(request: CamcopsRequest, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.AdministeredGroupsSequence(*args, **kwargs)[source]¶ Typical use: (non-superuser) group administrator assigns group memberships to a user. Offers the groups administered by the requestor.
-
class
camcops_server.cc_modules.cc_forms.AllGroupsSequence(*args, minimum_number: int = 0, **kwargs)[source]¶ Typical use: superuser assigns group memberships to a user. Offer all possible groups.
-
class
camcops_server.cc_modules.cc_forms.AllOtherGroupsSequence(*args, minimum_number: int = 0, **kwargs)[source]¶ Typical use: superuser assigns group permissions to another group. Offer all possible OTHER groups.
-
class
camcops_server.cc_modules.cc_forms.AllowedGroupsSequence(*args, minimum_number: int = 0, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.ApplyCancelForm(schema_class: Type[colander.Schema], request: CamcopsRequest, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.CSRFSchema(*arg, **kw)[source]¶ Base class for form schemas that use CSRF (XSRF; cross-site request forgery) tokens.
You can’t put the call to bind() at the end of __init__(), because bind() calls clone() with no arguments and clone() ends up calling __init__()…
-
class
camcops_server.cc_modules.cc_forms.CSRFToken(*arg, **kw)[source]¶ From http://deform2000.readthedocs.io/en/latest/basics.html:
“The default of a schema node indicates the value to be serialized if a value for the schema node is not found in the input data during serialization. It should be the deserialized representation. If a schema node does not have a default, it is considered “serialization required”.”
“The missing of a schema node indicates the value to be deserialized if a value for the schema node is not found in the input data during deserialization. It should be the deserialized representation. If a schema node does not have a missing value, a colander.Invalid exception will be raised if the data structure being deserialized does not contain a matching value.”
RNC: Serialized values are always STRINGS.
-
schema_type¶ alias of
colander.String
-
-
class
camcops_server.cc_modules.cc_forms.ChangeOtherPasswordForm(request: CamcopsRequest, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.ChangeOwnPasswordForm(request: CamcopsRequest, must_differ: bool = True, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.ChangeOwnPasswordSchema(*args, must_differ: bool = True, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.ChooseTrackerForm(request: CamcopsRequest, as_ctv: bool, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.DangerousForm(schema_class: Type[colander.Schema], submit_action: str, submit_title: str, request: CamcopsRequest, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.DatabaseDialectSelector(*args, **kwargs)[source]¶ -
schema_type¶ alias of
colander.String
-
-
class
camcops_server.cc_modules.cc_forms.DeleteCancelForm(schema_class: Type[colander.Schema], request: CamcopsRequest, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.DeleteGroupForm(request: CamcopsRequest, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.DeleteIdDefinitionForm(request: CamcopsRequest, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.DeletePatientChooseForm(request: CamcopsRequest, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.DeletePatientConfirmForm(request: CamcopsRequest, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.DumpTypeSelector(*arg, **kw)[source]¶ -
schema_type¶ alias of
colander.String
-
-
class
camcops_server.cc_modules.cc_forms.EditGroupForm(request: CamcopsRequest, group: camcops_server.cc_modules.cc_group.Group, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.EditIdDefinitionForm(request: CamcopsRequest, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.EditPatientForm(request: CamcopsRequest, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.EditServerSettingsForm(request: CamcopsRequest, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.EditTaskFilterForm(request: CamcopsRequest, open_who: bool = False, open_what: bool = False, open_when: bool = False, open_admin: bool = False, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.EditUserFullForm(request: CamcopsRequest, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.EditUserGroupAdminForm(request: CamcopsRequest, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.EditUserGroupMembershipFullForm(request: CamcopsRequest, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.EditUserGroupMembershipGroupAdminForm(request: CamcopsRequest, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.ForciblyFinalizeChooseDeviceForm(request: CamcopsRequest, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.ForciblyFinalizeConfirmForm(request: CamcopsRequest, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.GroupsSequenceBase(*args, minimum_number: int = 0, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.HL7MessageLogForm(request: CamcopsRequest, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.Hl7AssigningAuthorityNode(*arg, **kw)[source]¶ -
schema_type¶ alias of
colander.String
-
-
class
camcops_server.cc_modules.cc_forms.Hl7IdTypeNode(*arg, **kw)[source]¶ -
schema_type¶ alias of
colander.String
-
-
class
camcops_server.cc_modules.cc_forms.IdDefinitionDescriptionNode(*arg, **kw)[source]¶ -
schema_type¶ alias of
colander.String
-
-
class
camcops_server.cc_modules.cc_forms.IdDefinitionShortDescriptionNode(*arg, **kw)[source]¶ -
schema_type¶ alias of
colander.String
-
-
class
camcops_server.cc_modules.cc_forms.IncludeBlobsNode(*arg, **kw)[source]¶ -
schema_type¶ alias of
colander.Boolean
-
-
class
camcops_server.cc_modules.cc_forms.LoginForm(request: CamcopsRequest, autocomplete_password: bool = True, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.MandatoryDeviceIdSelector(*args, **kwargs)[source]¶ -
schema_type¶ alias of
colander.Integer
-
-
class
camcops_server.cc_modules.cc_forms.MandatoryGroupIdSelectorAdministeredGroups(*args, **kwargs)[source]¶ Offers a picklist of groups from GROUPS ADMINISTERED BY REQUESTOR. Used by groupadmins: add user to my group(s).
-
class
camcops_server.cc_modules.cc_forms.MandatoryGroupIdSelectorAllGroups(*args, **kwargs)[source]¶ Offers a picklist of groups from ALL POSSIBLE GROUPS. Used by superusers: add user to any group.
-
class
camcops_server.cc_modules.cc_forms.MandatoryGroupIdSelectorAllowedGroups(*args, **kwargs)[source]¶ Offers a picklist of groups from THOSE THE USER IS ALLOWED TO SEE. Used for task filters.
-
class
camcops_server.cc_modules.cc_forms.MandatoryGroupIdSelectorOtherGroups(*args, **kwargs)[source]¶ Offers a picklist of groups THAT ARE NOT THE SPECIFIED GROUP. Used by superusers: “which other groups can this group see?”
-
class
camcops_server.cc_modules.cc_forms.MandatoryGroupIdSelectorUserGroups(*args, **kwargs)[source]¶ Offers a picklist of groups from THOSE THE USER IS A MEMBER OF. Used for: “which of your groups do you want to upload into?”
-
class
camcops_server.cc_modules.cc_forms.MandatoryIdNumValue(*arg, **kw)[source]¶ -
schema_type¶ alias of
colander.Integer
-
-
class
camcops_server.cc_modules.cc_forms.MandatoryUserIdSelectorUsersAllowedToSee(*args, **kwargs)[source]¶ -
schema_type¶ alias of
colander.Integer
-
-
class
camcops_server.cc_modules.cc_forms.MultiTaskSelector(*args, tracker_tasks_only: bool = False, minimum_number: int = 0, **kwargs)[source]¶ -
schema_type¶ alias of
colander.Set
-
-
class
camcops_server.cc_modules.cc_forms.MustChangePasswordNode(*arg, **kw)[source]¶ -
schema_type¶ alias of
colander.Boolean
-
-
class
camcops_server.cc_modules.cc_forms.NewPasswordNode(*arg, **kw)[source]¶ -
schema_type¶ alias of
colander.String
-
-
class
camcops_server.cc_modules.cc_forms.OfferBasicDumpForm(request: CamcopsRequest, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.OfferSqlDumpForm(request: CamcopsRequest, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.OfferTermsForm(request: CamcopsRequest, agree_button_text: str, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.OldUserPasswordCheck(*arg, **kw)[source]¶ -
schema_type¶ alias of
colander.String
-
-
class
camcops_server.cc_modules.cc_forms.OptionalGroupIdSelectorUserGroups(*args, **kwargs)[source]¶ Offers a picklist of groups from THOSE THE USER IS A MEMBER OF. Used for “which do you want to upload into?”.
-
class
camcops_server.cc_modules.cc_forms.OptionalSingleTaskSelector(*args, tracker_tasks_only: bool = False, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.RefreshTasksForm(request: CamcopsRequest, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.ReportOutputTypeSelector(*arg, **kw)[source]¶ -
schema_type¶ alias of
colander.String
-
-
class
camcops_server.cc_modules.cc_forms.ReportParamForm(request: CamcopsRequest, schema_class: Type[camcops_server.cc_modules.cc_forms.ReportParamSchema], **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.RowsPerPageSelector(*arg, **kw)[source]¶ -
schema_type¶ alias of
colander.Integer
-
-
class
camcops_server.cc_modules.cc_forms.SetUserUploadGroupForm(request: CamcopsRequest, user: User, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.SimpleSubmitForm(schema_class: Type[colander.Schema], submit_title: str, request: CamcopsRequest, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.SortTsvByHeadingsNode(*arg, **kw)[source]¶ -
schema_type¶ alias of
colander.Boolean
-
-
class
camcops_server.cc_modules.cc_forms.SqliteSelector(*args, **kwargs)[source]¶ -
schema_type¶ alias of
colander.String
-
-
class
camcops_server.cc_modules.cc_forms.TaskTrackerOutputTypeSelector(*arg, **kw)[source]¶ -
schema_type¶ alias of
colander.String
-
-
class
camcops_server.cc_modules.cc_forms.TasksPerPageForm(request: CamcopsRequest, **kwargs)[source]¶
-
class
camcops_server.cc_modules.cc_forms.UserGroupMembershipFullSchema(*arg, **kw)[source]¶ Edit group membership - for superusers.
-
class
camcops_server.cc_modules.cc_forms.UserGroupMembershipGroupAdminSchema(*arg, **kw)[source]¶ Edit group membership - for group administrators.