1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
# see import_workflow.txt
participant Resource
participant Field
participant Widget
participant tablib.Dataset
Resource->Resource:""export(queryset=None, \*\*kwargs)""
activate Resource
Resource->Resource:<background:#yellow>""before_export(queryset=None, \*\*kwargs)""
note over Resource: A Queryset instance can be passed into export().\nIf no Queryset is passed, get_queryset() is called.
Resource->Resource:<background:#yellow>""get_queryset()""
activate Resource #lightblue
Resource<--Resource:""Queryset""
deactivate Resource
Resource->Resource:<background:#yellow>""filter_export(queryset, \*\*kwargs)""
activate Resource #lightblue
Resource<--Resource:""Queryset""
deactivate Resource
loop #pink each row in Queryset
Resource->Resource:<background:#yellow>""export_resource(instance)""
activate Resource #lightblue
loop #green each field in export field list
Resource->Resource:""export_field(field, instance)""
activate Resource #lightpink
Resource->Field:""export(instance)""
activate Field #lightblue
note over Field: An optional callable can be defined instead of export().\n See 'dehydrate' methods in docs.
Field->Field:""get_value(instance)""
activate Field #lightpink
note over Field: Get the field's value from the instance.
Field<--Field:""<<value>>""
Field->Widget:""render(value, instance)""
activate Widget
note over Widget: Format field value into a\nstring or value as required.
Field<--Widget:""<<value>>
deactivate Widget
deactivate Field
Resource<--Field:""<<value>>""
deactivate Field
deactivate Resource
end
deactivate Resource
Resource->tablib.Dataset:""append()""
end
Resource<--Resource:""<<Dataset>>""
deactivate Resource
|