openerp-india team mailing list archive
-
openerp-india team
-
Mailing list archive
-
Message #27536
[Bug 1301474] [NEW] [trunk/7.0] Widget t-foreach - No enumerator given to foreach
Public bug reported:
Hi everyone,
I suspect we have a bug with the widget system. I can't make it work
with the t-foreach in qweb, when I try I have the following error
Error: QWeb2 - template['VoteFiveStar']: Runtime Error: Error: QWeb2 -
template['VoteFiveStar']: No enumerator given to foreach
Here is my javascript file :
openerp.web_widget_vote = function(instance) {
instance.web.form.VoteFiveStar = instance.web.form.FieldChar.extend({
template: 'VoteFiveStar',
start: function() {
this._super();
this.votes = ["test", "test"]; //this.get('value');
},
});
instance.web.form.widgets = instance.web.form.widgets.extend({
'vote_five_star' : 'instance.web.form.VoteFiveStar',
});
};
And my template file :
<?xml version="1.0" encoding="UTF-8"?>
<templates id="template" xml:space="preserve">
<t t-name="VoteFiveStar">
<t t-foreach="widget.votes" t-as="vote">
<p><t t-esc="vote"/></p>
</t>
<span class="oe_form_field oe_form_field_vote_five_star">
<a t-att-name="widget.name" string="-2" class="oe_e star_vote_five_star oe_star_off">7</a>
<a t-att-name="widget.name" string="-1" class="oe_e star_vote_five_star oe_star_off">7</a>
<a t-att-name="widget.name" string="0" class="oe_e star_vote_five_star oe_star_off">7</a>
<a t-att-name="widget.name" string="1" class="oe_e star_vote_five_star oe_star_off">7</a>
<a t-att-name="widget.name" string="2" class="oe_e star_vote_five_star oe_star_off">7</a>
<a t-att-name="widget.name" class="oe_e ok_vote_five_star" style="display:none;">8</a>
</span>
</t>
</templates>
If I replace the foreach by a
<p><t t-esc="widget.votes"/></p>
I have no more the error message and I have a "test,test" displayed, so the variable is clearly passed to the template.
I don't understand what is happening... And it's seems I'm not the only one :
http://help.openerp.com/question/40055/web-module-qwebrender-error-no-enumerator-given-to-foreach/
http://help.openerp.com/question/21396/qweb-cant-use-t-foreach/
http://help.openerp.com/question/5823/qweb-to-display-record-in-web-module/
No answers on all theses tickets until now, there is definitely
something which is wrong.
If you want to check my branch :
https://code.launchpad.net/~yannick-buron/wezer/openerp-wezer
The files :
http://bazaar.launchpad.net/~yannick-buron/wezer/openerp-wezer/view/head:/web_widget_vote/static/src/js/vote.js
http://bazaar.launchpad.net/~yannick-buron/wezer/openerp-wezer/view/head:/web_widget_vote/static/src/xml/vote.xml
Thanks a lot for your help.
** Affects: openobject-addons
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of OpenERP
Indian Team, which is subscribed to OpenERP Addons.
https://bugs.launchpad.net/bugs/1301474
Title:
[trunk/7.0] Widget t-foreach - No enumerator given to foreach
Status in OpenERP Addons (modules):
New
Bug description:
Hi everyone,
I suspect we have a bug with the widget system. I can't make it work
with the t-foreach in qweb, when I try I have the following error
Error: QWeb2 - template['VoteFiveStar']: Runtime Error: Error: QWeb2 -
template['VoteFiveStar']: No enumerator given to foreach
Here is my javascript file :
openerp.web_widget_vote = function(instance) {
instance.web.form.VoteFiveStar = instance.web.form.FieldChar.extend({
template: 'VoteFiveStar',
start: function() {
this._super();
this.votes = ["test", "test"]; //this.get('value');
},
});
instance.web.form.widgets = instance.web.form.widgets.extend({
'vote_five_star' : 'instance.web.form.VoteFiveStar',
});
};
And my template file :
<?xml version="1.0" encoding="UTF-8"?>
<templates id="template" xml:space="preserve">
<t t-name="VoteFiveStar">
<t t-foreach="widget.votes" t-as="vote">
<p><t t-esc="vote"/></p>
</t>
<span class="oe_form_field oe_form_field_vote_five_star">
<a t-att-name="widget.name" string="-2" class="oe_e star_vote_five_star oe_star_off">7</a>
<a t-att-name="widget.name" string="-1" class="oe_e star_vote_five_star oe_star_off">7</a>
<a t-att-name="widget.name" string="0" class="oe_e star_vote_five_star oe_star_off">7</a>
<a t-att-name="widget.name" string="1" class="oe_e star_vote_five_star oe_star_off">7</a>
<a t-att-name="widget.name" string="2" class="oe_e star_vote_five_star oe_star_off">7</a>
<a t-att-name="widget.name" class="oe_e ok_vote_five_star" style="display:none;">8</a>
</span>
</t>
</templates>
If I replace the foreach by a
<p><t t-esc="widget.votes"/></p>
I have no more the error message and I have a "test,test" displayed, so the variable is clearly passed to the template.
I don't understand what is happening... And it's seems I'm not the only one :
http://help.openerp.com/question/40055/web-module-qwebrender-error-no-enumerator-given-to-foreach/
http://help.openerp.com/question/21396/qweb-cant-use-t-foreach/
http://help.openerp.com/question/5823/qweb-to-display-record-in-web-module/
No answers on all theses tickets until now, there is definitely
something which is wrong.
If you want to check my branch :
https://code.launchpad.net/~yannick-buron/wezer/openerp-wezer
The files :
http://bazaar.launchpad.net/~yannick-buron/wezer/openerp-wezer/view/head:/web_widget_vote/static/src/js/vote.js
http://bazaar.launchpad.net/~yannick-buron/wezer/openerp-wezer/view/head:/web_widget_vote/static/src/xml/vote.xml
Thanks a lot for your help.
To manage notifications about this bug go to:
https://bugs.launchpad.net/openobject-addons/+bug/1301474/+subscriptions
Follow ups
References