OpenERP attributs de champ - invisible attribut dans l'arborescence
Considérant les objets suivants et une vue correspondant:
class first_object(osv.osv):
_name = "first.object"
_columns = {
'id': fields.integer ('First ID'),
'flag': fields.boolean ('Flag'),
'second_object_id': fields.one2many('second.object','first_object_id')
}
class second_object(osv.osv):
_name = "second.object"
_columns = {
'id': fields.integer ('Second ID'),
'first_object_id': fields.many2one('first.object','random field'),
'field_x': fields.float('x',size=128),
'field_y': fields.float('y',size=128),
}
<record model="ir.ui.view" id="first_object_view_id">
<field name="name">Frist Object</field>
<field name="model">first.object</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form>
<notebook>
<page>
<field name="id"></field>
<field name="flag"></field>
<field name="second_object_id">
<tree editable="top">
<field name="field_x" attrs="{'invisible':[('flag','=',True)]}"/>
<field name="field_y"/>
</tree>
<form>
<field name="field_x"/>
<field name="field_y"/>
</form>
</field>
</page>
</notebook>
</form>
</field>
</record>
Avis de la attrs j'ai maintenant le domaine de la deuxième objet nommé field_x dans l'arbre, qui est basée sur le champ de la premier objet nommé drapeau.
Tout d'abord, l'attribut dans ce cas est complètement ignoré. Je ne sais pas pourquoi il l'habitude de travailler. Deuxièmement, en supposant que cela ne peut pas fonctionner et les attributs DOIVENT se référer à des champs locaux, la invisible attribut ne fonctionne pas pour le arbre vue, tout le forme vue. Toutefois, si vous définissez un simple invisible="1" dans l'arbre, il serait très bien fonctionner (je ne peux pas compter sur cela, j'ai besoin de la règle-je fournir avec des attributs). Des idées?
EDIT:
Le problème semble être prise de champs invisible grâce à des attributs (et non pas invisible="1") dans l'ARBORESCENCE. Il fonctionne très bien dans la forme. Si cela peut être fait, il permettrait de résoudre mon problème.
EDIT 2:
J'ai essayé avec séparées définitions de vue et des champs locaux au lieu de many2one et one2many en vain. Cependant, j'ai réussi en quelque sorte à réaliser avec invisible="context.get('xxx',True/False)"
. Le problème est qu'une fois la condition est validée, il reste invisible même après la création d'un nouveau dossier dans les cas où la condition n'est pas appariés.
grâce Héroïque, mais en fait j'ai déjà dit que ce n'est pas de travail. gardez à l'esprit ce n'est pas un régulier de la vue de l'arborescence, c'est une forme dans laquelle le one2many champ est élargi à un arbre, et la vue de forme, et la attrs ne fonctionnent pas dans ce cas
OriginalL'auteur 3a2roub | 2012-12-12
Vous devez vous connecter pour publier un commentaire.
s'il vous plaît regardez dans stock_move_tree de stock.déplacer
Est la même solution, mais pour le bouton, pas de régulières sur le terrain. Et oui, supprimer un champ, mais montrent colonne vide.
OriginalL'auteur user1888049
il semble essayer de mettre un conditionnel invisible attribut n'affectera pas le vrai point de vue. seulement invisible="1". ce qui est logique, puisque je ne peux pas imaginer une arborescence avec certains invisible domaine dans lequel l'ensemble de la colonne elle-même n'est pas invisible.
OriginalL'auteur 3a2roub
ajouter un domaine connexe à signaler en seconde.oject
puis ajouter un champ indicateur dans votre vue comme invisible et attrs:
OriginalL'auteur user1888049
Vous devez prendre 1 extra nouveau champ (j'.e type booléen) en Objet2.
et de créer onchnage sur "drapeau" dans le domaine de l'objet1.
dans ce onchnage vous définissez-réinitialisation de la valeur de cette nouvelle filière selon la valeur de l'Indicateur.
et mettre attrs sur ce new_field à la place du Drapeau.
Espère que Cela va vous aider à
OriginalL'auteur Avadhesh
Veuillez définir la vue pour le modèle 'deuxième.l'objet " séparément. Le même exemple est dans stock_partial_picking.py fichier à l'intérieur de l'assistant de dossier dans le module stock. veuillez vérifier que. vous devrez peut-être définir un champ comme utilisateur user1888049 dit dans sa réponse
modifié ma réponse. s'il vous plaît vérifier. et aussi contexte donné dans edit2 ne fonctionne que si à chaque fois lorsque le drapeau est changé, vous devez mettre à jour la valeur dans le contexte. Je recommande de ne pas utiliser cette méthode
OriginalL'auteur OmaL