Commit 702943ab authored by Douglas's avatar Douglas

erp5_wendelin: added Data Stream UI to append file

The Append File control is hidden when the Data Stream is empty and enabled
when the Data Stream already has content. Meaninful notes were added to both
Upload File and Append File control to avoid confusion.
parent 19f7c70a
request = container.REQUEST
response = request.response
field_prefix = 'field_my_' # Prevent changing the prefix through publisher
field_prefix_len = len(field_prefix)
fields = {}
for key, value in request.form.items():
if key.startswith(field_prefix) and value:
fields[key[field_prefix_len:]] = value
if fields.has_key('append_file'):
context.appendData(fields['append_file'].read())
del fields['append_file']
context.edit(**fields)
message = context.Base_translateString("Data Stream updated")
return context.Base_redirect(
'view',
keep_items=dict(portal_status_message=message),
**kw
)
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>form_id, **kw</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>DataStream_saveDataStream</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -14,7 +14,7 @@
</item>
<item>
<key> <string>action</string> </key>
<value> <string>Base_edit</string> </value>
<value> <string>DataStream_saveDataStream</string> </value>
</item>
<item>
<key> <string>description</string> </key>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>css_class</string>
<string>description</string>
<string>hidden</string>
<string>title</string>
</list>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>my_append_file</string> </value>
</item>
<item>
<key> <string>message_values</string> </key>
<value>
<dictionary>
<item>
<key> <string>external_validator_failed</string> </key>
<value> <string>The input failed the external validator.</string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>overrides</string> </key>
<value>
<dictionary>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>tales</string> </key>
<value>
<dictionary>
<item>
<key> <string>css_class</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
</value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</value>
</item>
<item>
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>css_class</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>description</string> </key>
<value> <string>Upload a file to be appended to the current.</string> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_file</string> </value>
</item>
<item>
<key> <string>form_id</string> </key>
<value> <string>Base_viewDMSFieldLibrary</string> </value>
</item>
<item>
<key> <string>hidden</string> </key>
<value> <int>0</int> </value>
</item>
<item>
<key> <string>target</string> </key>
<value> <string>Click to edit the target</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Append file (this will append to existing data)</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</pickle>
</record>
<record id="2" aka="AAAAAAAAAAI=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: \'hidden_label\' if context.getSize() == 0 else \'\'</string> </value>
</item>
</dictionary>
</pickle>
</record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<global name="TALESMethod" module="Products.Formulator.TALESField"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>python: context.getSize() == 0</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
......@@ -10,6 +10,7 @@
<key> <string>delegated_list</string> </key>
<value>
<list>
<string>description</string>
<string>title</string>
</list>
</value>
......@@ -71,6 +72,10 @@
<key> <string>values</string> </key>
<value>
<dictionary>
<item>
<key> <string>description</string> </key>
<value> <string>Upload a file that will REPLACE the current one, please be careful.</string> </value>
</item>
<item>
<key> <string>field_id</string> </key>
<value> <string>my_view_mode_file</string> </value>
......@@ -85,7 +90,7 @@
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Upload file</string> </value>
<value> <string>Upload file (this will ERASE existing data, please be careful)</string> </value>
</item>
</dictionary>
</value>
......
  • @Camata , Even though I merged I found following problems (I merged so we get back lost functionality).

    Please do fix:

    1. portal_gadgets/WendelinInformationGadget state should be made public (not invisible like now)

    2. portal_gadgets/WendelinInformationGadget should have a default thumbnail (i.e. image). You can simply make print screen and add it

    3. When Wendelin gadget rendered I see links like http://wendelin:2200/erp5/$%7Bportal_url%7D/portal_skins/erp5_data_notebook/manage_main looks like script not called that replaces it dynamically ?

    4. In /DataStream_view my_append_file is in group "not_assigned" but it should be right under "my_file" in "right" groupd

  • @Tyagov I fixed everything, except for point 3. No matter what I do, it seems like the substitution of variables in form on ${my_var} isn't working. I followed all the steps found in this tutorial: https://www.erp5.com/erp5-HowTo.Add.Content.Variables.

    My script used for substitution returns:

    {
      'portal_url': 'http://localhost:2200/erp5'
    }

    But no matter where I put ${portal_url}, it never renders http://localhost:2200/erp5 .

    Note: even though tomorrow is national holiday in Brazil I'll work to fix this ASAP.

    Edited by Douglas
  • @Camata , .asStrippedHTML method might help you

Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment