Provide a generic and ergonomic relation widget
Project description
Summary
This cube provides a generic but ergonomic widget to link an edited entity to several others for a given relation. It provides:
a list of checkbox-(de-)selectable related entities
a mecanism to trigger the display of a pop-up window for each possible target entity type of the relation
in the pop-up window, the end-user can:
search (using facets) entities to be linked to the edited entity,
display (in a paginated table) and select them (using a checkbox on each table line)
create a new entity to be linked (can be desactivated)
Usage
Select the relation widget for your relation
You can use the two following mecanisms to configure the user interface:
either cubicweb.web.uihelper.FormConfig:
from cubicweb.web import uihelper from cubes.relationwidget.views import RelationFacetWidget class MyEntityConfig(uihelper.FormConfig): etype = 'MyEntity' # Move `my_relation` into the attribute section: rels_as_attrs = ('my_relation', ) # Edit `my_relation` using RelationFacetWidget: widgets = dict( my_relation=RelationFacetWidget, )
or directly via uicfg.autoform_field_kwarg:
from cubicweb.web.views import uicfg from cubes.relationwidget.views import RelationFacetWidget # edit the relation as attribute. uicfg.autoform_section.tag_subject_of( ('MyEntity', 'my_relation', '*'), formtype=('main', 'muledit'), section='attributes') # add the RelationFacetWidget for `my_relation` uicfg.autoform_field_kwargs.tag_subject_of( ('MyEntity', 'my_relation', '*'), {'widget': RelationFacetWidget})
Configure it (optional)
If you want to desactivate the ability to create a new entity to be linked to the edited one, you can do it:
for a single relation using uicfg again:
uicfg.autoform_field_kwargs.tag_subject_of( ('MyEntity', 'my_relation', '*'), {'widget': RelationFacetWidget(no_creation_form=True)})
application-wide by overriding SearchForRelatedEntitiesView.has_creation_form to always return False:
from cubes.relationwidget.view import SearchForRelatedEntitiesView class MySearchForRelatedEntitiesView(SearchForRelatedEntitiesView): @property def has_creation_from(self): return False def registration_callback(vreg): vreg.register_and_register(MySearchForRelatedEntitiesView, SearchForRelatedEntitiesView)
There is also a dialog_options dictionary that can be used to configure the bootstrap modal window (see http://getbootstrap.com/javascript/#modals-options):
uicfg.autoform_field_kwargs.tag_subject_of( ('MyEntity', 'my_relation', '*'), {'widget': RelationFacetWidget(dialog_options={'keyboard': False})})
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for cubicweb-relationwidget-0.6.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6a4752c8c4956c2b94604959fbd61efcfe53e449836ee72075066d1ac829bd86 |
|
MD5 | f2be9275e42d755cfc374da2cddb885e |
|
BLAKE2b-256 | 16b348e4b52e0ba3bf17394b9181a3114dd328cad89eea0a51d6e1f75aef9668 |
Hashes for cubicweb_relationwidget-0.6.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 647f28112e4ac311b889000ab3e87800573352287256f77b36a60eb4085c32a0 |
|
MD5 | e8f21be72c1486cf889f6c692b9ca291 |
|
BLAKE2b-256 | f8efc1be624e06ad36e88014a1d2ecb505959f01ca4e6d5fa234de00765935cc |