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>