dolmen.widget.file 1.0b2
File widget for `zeam.form` and `Dolmen`
dolmen.widget.file is a package that walks hand-in-hand with dolmen.file. It provides a useable and pluggable way to render the dolmen.file.FileField in a zeam.form Form.
Example
We are going to develop here a small example, to demonstrate the use of dolmen.widget.file. First, we need to create a model content with a file field:
>>> import dolmen.file >>> import grokcore.component as grok >>> from zope.interface import Interface >>> from zope.schema.fieldproperty import FieldProperty >>> class ITravelMount(Interface): ... luggage = dolmen.file.FileField(title=u'Luggages') >>> class Mammoth(grok.Context): ... grok.implements(ITravelMount) ... luggage = FieldProperty(ITravelMount['luggage'])
We now have a travel mammoth on which we can add a luggage. Now, we need a form to edit the animal:
>>> from zeam.form.ztk import Form, Fields
>>> class EditMammoth(Form):
... grok.name('edit')
... grok.context(ITravelMount)
... ignoreContent = False
... fields = Fields(ITravelMount)
>>> grok.testing.grok_component('edit', EditMammoth)
True
Let's instanciate a Mammoth and try to call the form on it:
>>> from zope.component import getMultiAdapter
>>> from zope.publisher.browser import TestRequest
>>> manfred = Mammoth()
>>> request = TestRequest()
>>> form = getMultiAdapter((manfred, request), name='edit')
>>> form.updateWidgets()
>>> print form.fieldWidgets.get('form.field.luggage').render()
<div id="form-field-luggage">
<input type="file" id="form-field-luggage-input"
name="form.field.luggage" />
</div>
Now, let's try with a value:
>>> manfred.luggage = "A nice data"
>>> form = getMultiAdapter((manfred, request), name='edit')
>>> form.updateWidgets()
>>> print form.fieldWidgets.get('form.field.luggage').render()
<div id="form-field-luggage">
<div>
<input type="radio" value="keep" checked="checked"
class="noborder" name="form.field.luggage.action"
onclick="document.getElementById('form-field-luggage-input').disabled=true"
id="form-field-luggage-action" />
<label for="form-field-luggage-action">Keep existing file</label>
<br />
<input type="radio" value="delete" class="noborder"
name="form.field.luggage.action"
onclick="document.getElementById('form-field-luggage-input').disabled=true"
id="form-field-luggage-delete" />
<label for="form-field-luggage-delete">Delete existing file</label>
<br />
<input type="radio" value="replace" class="noborder"
name="form.field.luggage.action"
onclick="document.getElementById('form-field-luggage-input').disabled=false"
id="form-field-luggage-replace" />
<label for="form-field-luggage-replace">Replace with new file</label>
</div>
<div>
<input type="file" id="form-field-luggage-input"
name="form.field.luggage" />
<script type="text/javascript">document.getElementById('form-field-luggage-input').disabled=true;</script>
</div>
</div>
Changelog
1.0b2 (2010-11-22)
- We now retrieve the form content using the proper API (getContentData / getContent).
1.0b1 (2010-07-05)
- The field adapter is now registered using the latest zeam.form.base entry points system. This solves definitly the priority problems in the registration process.
- The widget mode registration is now done using the __str__ representation of the appropriate markers.
1.0a3 (2010-06-25)
- We no longer user the registerField function from zeam.form.ztk, but directly provide the adapter thanks to Grok, instead. This solves initialisation priority preventing the correct field registration.
1.0a2 (2010-06-19)
- Corrected a bug that allowed actions to appear when form submission errors occured.
1.0a1 (2010-05-14)
- Major change : the widget is now meant to be used in zeam.form. Dolmen is no longer using z3c.form.
- French translations have been added.
- The HTML code of the widget has been improved.
0.2 (2010-03-01)
- Code base has been cleaned to be pep8 compliant.
- We are now using the zope.size.ISized adaptation to get the size of the file to display.
- Cleaned dependencies. zope.app dependencies have been severed when possible.
0.1 (2009-10-21)
- Initial release
| File | Type | Py Version | Uploaded on | Size | # downloads |
|---|---|---|---|---|---|
| dolmen.widget.file-1.0b2.tar.gz (md5) | Source | 2010-11-22 | 8KB | 413 | |
- Author: Souheil Chelfouh
- Keywords: Grok Zope3 Zeam Dolmen Widget File
- License: GPL
- Platform: Any
- Categories
- Package Index Owner: trollfot
- DOAP record: dolmen.widget.file-1.0b2.xml
