Mixing Views Problem

Asked by mm alam

Hi Every one,

I am getting a problem in the OpenERP GTK Client. The error is as follows:-
Traceback (most recent call last):
  File "/home/alam/Desktop/Data/client/bin/modules/gui/main.py", line 1334, in _sig_child_call
    res = wid.handlers[button_name]()
  File "/home/alam/Desktop/Data/client/bin/modules/gui/window/form.py", line 286, in sig_new
    if not self.modified_save():
  File "/home/alam/Desktop/Data/client/bin/modules/gui/window/form.py", line 428, in modified_save
    if self.screen.is_modified():
  File "/home/alam/Desktop/Data/client/bin/widget/screen/screen.py", line 487, in is_modified
    self.current_view.set_value()
  File "/home/alam/Desktop/Data/client/bin/widget/view/form.py", line 333, in set_value
    widget.set_value(model)
  File "/home/alam/Desktop/Data/client/bin/widget/view/form.py", line 65, in set_value
    self.widget.set_value(model, model.mgroup.mfields[self.widget_name])
  File "/home/alam/Desktop/Data/client/bin/widget/view/form_gtk/spinbutton.py", line 45, in set_value
    model_field.set_client(model, self.widget.get_value())
  File "/home/alam/Desktop/Data/client/bin/widget/model/field.py", line 230, in set_client
    if abs(float(internal or 0.0) - float(model.value[self.name] or 0.0)) >= (10.0**(-1-int(self.attrs.get('digits', (12,4))[1]))):
TypeError: float() argument must be a string or a number

For your reference, my code is as follows:-

from osv import osv, fields
class student_qualification(osv.osv):
    def _compute_percentage(self, cr, uid, ids, field_name, field_value, arg, context=None):
        records = self.browse(cr, uid, ids)
        result = {}
        str1 = 1.0
        for r in records:
            if r.MarksObtain and r.TotalMarks:
                str1 = ((r.MarksObtain*1.0) / (r.TotalMarks*1.0)) * 100
            result[r.id] = str1
        return result
    _name = "student_qualification.student_qualification"
    _description = "Students Biodata Discription"
    _columns = {
        'name': fields.char('Name', size=64),
        'MarksObtain': fields.float('Marks Obtain', required=True),
        'TotalMarks': fields.float('Total Marks', required=True),
        'Percentage': fields.function(_compute_percentage, type='float', obj='student_qualification.student_qualification', method=True, store=True, string='Percentage'),
        'RegistrationNumber': fields.char('Registration Number', size=64),
        'CGPA': fields.integer('CGPA', required=True),
    }

student_qualification()

class entrytest(osv.osv):

    def _get_company_currency(self, cr, uid, ids, field_name, arg, context={}):
        result = {}
        for rec in self.browse(cr, uid, ids, context):
            result[rec.id] = (rec.Percentage.id,rec.Percentage.Percentage)
        return result
    def _get_company_currency1(self, cr, uid, ids, field_name, arg, context={}):
        result = {}
        for rec in self.browse(cr, uid, ids, context):
            result[rec.id] = (rec.Percentage.id,rec.Percentage.CGPA)
        return result
    def _get_company_currency2(self, cr, uid, ids, field_name, arg, context={}):
        result = {}
        for rec in self.browse(cr, uid, ids, context):
            result[rec.id] = rec.interviewmarks + rec.Percentage.Percentage
        return result

    _name = "entrytest.entrytest"
    _description = "Entry Tesr Discription"
    _columns = {
        'name': fields.char('Name1', size=64),
        'Percentage': fields.many2one('student_qualification.student_qualification', 'Per'),
        'interviewmarks': fields.float('INterview Marks', required=True),
        'CGPA': fields.many2one('student_qualification.student_qualification', 'CGPA'),
        'line_id1': fields.function(_get_company_currency, method=True, type='float', string='Percentage'),
        'line_id2': fields.function(_get_company_currency1, method=True, type='float', string='CGPA'),
        'line_id3': fields.function(_get_company_currency2, method=True, type='float' , string='Total Marks'),
    }
entrytest()

The view is not correctly shown. Also, The list view and form view are some how mixed. I have tried several times, but this thing is not working, please help.

I am providing view as well for reference:

<?xml version="1.0"?>
<openerp>
    <data>
    <menuitem name="Campus Management System" id="menu_tools" />
    <record model="ir.ui.view" id="view_student_qualification">
            <field name="name">Student Qualification</field>
            <field name="model">student_qualification.student_qualification</field>
            <field name="type">form</field>
            <field name="arch" type="xml">
      <form string="Category">
    <field name="name" select="1"/>
    <field name="MarksObtain" select="1"/>
    <field name="TotalMarks" select="1"/>
    <field name="Percentage" select="1"/>
    <field name="RegistrationNumber" select="1"/>
    <field name="CGPA" select="1"/>
                </form>
            </field>
        </record>

    <record model="ir.actions.act_window" id="action_student_qualification">
        <field name="name">Student Qualification</field>
        <field name="res_model">student_qualification.student_qualification</field>
        <field name="view_type">form</field>
        <field name="view_mode">tree,form</field>
    </record>

    <menuitem name="Student Qualification" parent="menu_tools" id="menu_student_qualification" action="action_student_qualification"/>

    <record model="ir.ui.view" id="view_entrytest">
            <field name="name">Entry Test</field>
            <field name="model">entrytest.entrytest</field>
            <field name="type">form</field>
            <field name="arch" type="xml">
                <form string="Entry Test Data">
     <field name="name" select="1"/>
     <field name="Percentage" select="1"/>
   <field name="line_id1" />
   <field name="line_id2" />
   <field name="line_id3" />
   <field name="interviewmarks"/>
                </form>
            </field>
        </record>

<record model="ir.ui.view" id="view_treeentrytest">
            <field name="name">Entry Test Tree View</field>
            <field name="model">entrytest.entrytest</field>
            <field name="type">tree</field>
            <field name="arch" type="xml">
                <tree string="Entry Test Data">
     <field name="name" select="1"/>
     <field name="Percentage" select="1"/>

                </tree>
            </field>
        </record>

    <record model="ir.actions.act_window" id="action_entrytest">
        <field name="name">Entry Test</field>
        <field name="res_model">entrytest.entrytest</field>
        <field name="view_type">form</field>
        <field name="view_mode">tree,form</field>
    </record>

    <menuitem name="Entry Test" parent="menu_tools" id="menu_entrytest" action="action_entrytest"/>

    </data>
</openerp>

Question information

Language:
English Edit question
Status:
Answered
For:
Odoo Server (MOVED TO GITHUB) Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Pieter J. Kersten (EduSense BV) (pieterj) said :
#1

Perhaps because model.value(self[name]) is a string, not a float?

Can you help with this problem?

Provide an answer of your own, or ask mm alam for more information if necessary.

To post a message you must log in.