Odoo Help

Welcome!

This community is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.

2

How to add a "product" field to a project issue?

By
Martin
on 6/26/13, 3:16 PM 1,550 views

I have defined a new model "bicycle" for a virtual bicycle factory. Every bicycle has a frame number, type etc. When a customer calls, who has an issue with one or more bicycles, I like to add references in the issue to the bicycles by referencing the affected bicycles in the project issue form. An issue can be about zero or more bicycles, and a bicycle can have zero or more issues.

How would I implement this?

What is the correct type of the new field in the project issue model? one2many or many2many or something else? Do I need to do sth. in the XML view to prevent creation of a new bicycle object from the project issue? I want only reference bicycles already existing in the database. When I add a one2many field x_bicycle in the project issue table and use a <field name="x_bicycle"/> in the project issue form view, I get the following error:

ProgrammingError: operator does not exist: character varying = integer
LINE 1: ....id FROM "bicycle" WHERE ("bicycle"."framenumber" in (2)) OR...
                                                             ^
HINT:  No operator matches the given name and argument type(s). You might need to add explicit type casts.

What am I doing wrong? Thanks in advance!

This is bicycle.py:

from osv import fields, osv
import time

class bicycle(osv.osv):
    _name = "bicycle"
    _description = "Bicycle"
    _rec_name = "framenumber"
    _columns = {
        'framenumber': fields.char('Frame Number', size=7, required=True),
        'mechanic': fields.char('Mechanic Acronym', size=20),
        'productiondt': fields.datetime('Date/Time of Production'),
        'type': fields.selection(
            [('C', 'City Bicycle'),
             ('R', 'Road Bicycle'),
             ('T', 'Touring Bicycle'),
             ('F', 'Folding Bicycle')],
            'Type'),
        'framerevision': fields.selection(
            [('A', 'Revision A'),
             ('B', 'Revision B')],
            'Frame Revision'),
        }

    _sql_constraints = [
        ('framenumber_uniq', 'unique (framenumber)', 'The frame number must be unique!')
        ]

bicycle()

This is bicycle_view.xml:

<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data>
        <record model="ir.ui.view" id="bicycle_tree_view">
            <field name="name">bicycle.tree</field>
            <field name="model">bicycle</field>
            <field name="type">tree</field>
            <field name="arch" type="xml">
                <tree string="Bicycle">
                    <field name="framenumber"/>
                    <field name="type"/>
                    <field name="framerevision"/>
                    <field name="mechanic"/>
                </tree>
            </field>
        </record>

        <record model="ir.ui.view" id="bicycle_form_view">
            <field name="name">bicycle.form</field>
            <field name="model">bicycle</field>
            <field name="type">form</field>
            <field name="arch" type="xml">
                <form string="Bicycle">
                    <field name="framenumber"/>
                    <field name="type"/>
                    <field name="framerevision"/>
                    <field name="mechanic"/>
                </form>
            </field>
        </record>

        <record model="ir.actions.act_window" id="action_bicycle_form">
            <field name="name">bicycle</field>
            <field name="res_model">bicycle</field>
        </record>

        <menuitem name="Bicycle"
          parent="project.menu_project_management"
          id="bicycle_menu_mainform" action="action_bicycle_form"/>
    </data>
</openerp>
0
Martin
On 6/29/13, 2:58 PM

It seems, that the right field type for pointing from project issues to bicycles is many2many. It works mainly as I want it, with some minor UI issues to work on.

0
Ali Ravani
On 6/27/13, 6:19 AM

you should use one2many fields.. which will show all the fields in form and tree view both...

Thanks, but this did not work for me. I rephrased my question and added some code to make clear, what I like to do.

Martin
on 6/29/13, 11:13 AM

Your Answer

Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!

About This Community

This community is for professionals and enthusiasts of our products and services. Read Guidelines

Question tools

0 follower(s)

Stats

Asked: 6/26/13, 3:16 PM
Seen: 1550 times
Last updated: 3/16/15, 8:10 AM