我无法在树状视图中插入分隔符或笔记本

时间:2014-04-22 17:59:14

标签: python xml openerp separator

我在树视图中插入分隔符或笔记本时遇到了一些麻烦。它甚至可能吗?

这些项目通常在树中以相同的细节(名称,地址,电话号码......)列出。在我的cas中,我有两种记录(Personne士气和Personne Physique)。第一种类型应该列在(nom,prénom,adresse),第二种应该列出(raison sociale,siègeocialial,...)。

仅仅是因为,用户可以选择将项目保存为(人格斗士)或人格体格,通过隐藏与其他类型相关的字段,因此用户只填写与该类型相关的字段选择。

    <div class="oe_center">                         
                        <sheet>
                            <h2>Demandeur:</h2>
                            <group>
                                <field name="state"/>
                            </group>
                            <group  attrs="{'invisible':[('state', '!=', 'p')],'required':[('state','!=','p')]}" col="4">                       
                                <field name="nom" />
                                <field name="prenom" />
                                <field name="cin" />
                                <field name="adresse" />
                                <!--<field name="dossier" />-->
                            </group>
                            <group attrs="{'invisible':[('state', '!=', 'm')],'required':[('state','!=','m')]}" col="4" >
                                <field name="raison_social" />
                                <field name="num_reg_comm" />
                                <field name="forme_social" />                                   
                                <field name="fax" />        
                            </group>
                            <group>
                                <field name="siege_social" attrs="{'invisible':[('state', '!=', 'm')]}" />
                            </group>
                            <group>
                                <field name="dossier" />
                                <field name="tel" /> <!-- je viens de l'ajouter -->                     
                                <field name="email" />
                            </group>

这是我正在谈论的课程:

         class demandeur(osv.osv):
_name = 'sayoo.demandeur'
_rec_name = 'nom'

_columns = {
        'state': fields.selection((('p','Personne Physique'), ('m','Personne Morale')),'Statut', required= True),
        'nom': fields.char('Nom', size=100, required=False),
        'prenom': fields.char('Prenom', size=100, required=False),
        'cin': fields.char('Cin', size=100, required=False),
        'raison_social':fields.char('Raison Sociale', size=100, required=False),
        'siege_social':fields.char('Siège Social', size=100, required=False),
        'forme_social':fields.char('Forme Juridique', size=100, required=False),
        'num_reg_comm':fields.char('N° du Registre de Commerce', size=100, required=False),
        #'dossier': fields.many2one('sayoo.dossier', 'dossier'),
        'dossier': fields.one2many('sayoo.dossier','id_dossier','demande d\'autorisation' ),
        'adresse': fields.char('Adresse', size=100, required=False), #'date_naissance': fields.date('Date de naissance'),
        'description': fields.text('Description'),
        'tel': fields.char('Numéro de Téléphone', size=20),
        'fax': fields.char('Numéro de Fax', size=20),
        'email': fields.char('Adresse Electronqiue', size=20),
                }

demandeur()

这是我尝试使用xml,但没有工作

    <record model="ir.ui.view" id="Demandeur_tree_view"><!-- d en D -->
        <field name="name">sayoo.demandeur.tree</field>
        <field name="model">sayoo.demandeur</field>
        <field name="type">tree</field>
        <field name="arch" type="xml">
            <tree string="Demandeur Details"><!-- d en D -->
                <notebook>
                    <page string "Personne Physique">                       
                        <field name="nom" />
                        <field name="prenom" />
                        <field name="cin" /> <!-- je vient de l ajouter pour afficher la CIN dans la vue liste du demandeur -->
                        <field name="adresse" />
                    </page>
                    <page string "Personne Morale">
                        <field name="raison_social" />
                        <field name="siege_social" />
                        <field name="forme_social" />
                        <field name="num_reg_comm" />   
                    </page>
                </notebook>
            </tree>
        </field>
    </record>

3 个答案:

答案 0 :(得分:1)

如果您正在使用操作(ir.actions.act_window),那么只需将字段域设置为:

<field name="domain">[('state','=','p')]</field> 

和/或

<field name="domain">[('state','=','m')]</field>

因此,对于具有不同域的2个菜单,您需要2个操作: - )

答案 1 :(得分:0)

有两种类型的视图:treeform。树视图非常简单,不处理notebook s,page s,group s。它也不处理每个记录显示不同的字段/列 - 换句话说,您可以列出所有八个字段,并且只有四个正确的字段显示数据,但所有八个列将始终显示。

您可能想要做的是有两个不同的tree视图(一个用于Physique,一个用于Morale),并让用户从菜单选择中选择要查看的视图(菜单xml可以设置domain,因此它只显示正确的记录。)

答案 2 :(得分:0)

您将其作为表单视图而不是树视图

<record model="ir.ui.view" id="Demandeur_form_view"><!-- d en D -->
        <field name="name">sayoo.demandeur.form</field>
        <field name="model">sayoo.demandeur</field>
        <field name="type">form</field>
        <field name="arch" type="xml">
            <form string="Demandeur Details" version="7.0"><!-- d en D -->
                <notebook>
                    <page string "Personne Physique">                       
                        <field name="nom" />
                        <field name="prenom" />
                        <field name="cin" /> <!-- je vient de l ajouter pour afficher la CIN dans la vue liste du demandeur -->
                        <field name="adresse" />
                    </page>
                    <page string "Personne Morale">
                        <field name="raison_social" />
                        <field name="siege_social" />
                        <field name="forme_social" />
                        <field name="num_reg_comm" />   
                    </page>
                </notebook>
            </form>
        </field>
    </record>

检查这个我会工作。