This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
it:openerp:general [2025/10/05 07:36] 47.128.44.23 old revision restored (2025/09/03 12:00) |
it:openerp:general [2025/10/09 15:30] (current) 47.128.112.132 old revision restored (2025/09/25 02:48) |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== OpenERP ====== | ====== OpenERP ====== | ||
- | ===== zu klärende Fragen zum Einstieg ===== | ||
- | * wie werden gelöschte Datensätze behandelt? (aus Tabelle gelöscht und wohin?) | ||
- | * Anbindung an OpenOffice | ||
- | * Zuordnung Users zu partners | ||
- | * res.partner' | ||
====== OpenERP Entwicklung ====== | ====== OpenERP Entwicklung ====== | ||
- | [[openerp: | ||
===== Standardmäßig extended view für admin setzen ===== | ===== Standardmäßig extended view für admin setzen ===== | ||
Line 215: | Line 209: | ||
| | ||
----------------- | ----------------- | ||
- | ===== Model Ebene ===== | + | ===== Felder: one2many - was wird angezeigt |
- | == Felder | + | |
Wenn das Feld related auf ein one2many Feld zeigt, dann wird dort das erste Element verwendet | Wenn das Feld related auf ein one2many Feld zeigt, dann wird dort das erste Element verwendet | ||
unter Beachtund der Sortierung (_order). | unter Beachtund der Sortierung (_order). | ||
- | == Erweitern von Standard Selection Fields == | + | ===== Erweitern von Standard Selection Fields |
Beispielsweise gibt es bei res.partner ein Auswahlfeld für den Adresstyp. Um diesen | Beispielsweise gibt es bei res.partner ein Auswahlfeld für den Adresstyp. Um diesen | ||
zu erweitern, muss im __init__.py der eigenen Klasse per Programmcode die neuen Selections | zu erweitern, muss im __init__.py der eigenen Klasse per Programmcode die neuen Selections | ||
hinzugefügt werden. Geht so: | hinzugefügt werden. Geht so: | ||
+ | |||
+ | <note important> | ||
+ | folgendes Vorgehen eigentlich nicht mehr so notwendig und vereinfacht sich so, dass nur ein weiteres | ||
+ | selection-Feld hinzugefügt werden muss. Dieses ergänzt dann die Auswahlwerte.</ | ||
<code python> | <code python> | ||
Line 237: | Line 234: | ||
</ | </ | ||
- | == Readonly | + | ===== Feldattribute in Abhängigkeit vom Status setzen, z.B. readonly |
<code python> | <code python> | ||
Line 319: | Line 316: | ||
- | ===== View Ebene ===== | + | ===== Aus einem Tree oder From View einen anderen View per Python-Code |
- | === View öffnen === | + | |
- | Aus einem Tree oder From View einen anderen View öffnen | + | |
<code python> | <code python> | ||
#wizard erstellen | #wizard erstellen | ||
- | class open_ref_wizard(wizard.interface): | + | class open_ref_wizard(osv.osv_memory): |
| | ||
def open_ref(self, | def open_ref(self, | ||
Line 338: | Line 334: | ||
' | ' | ||
' | ' | ||
- | } | ||
- | | ||
- | states = { | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | ' | ||
- | } | ||
} | } | ||
} | } | ||
- | open_ref_wizard(' | + | |
+ | open_ref_wizard() | ||
</ | </ | ||
+ | ===== Old-Style Wizards ===== | ||
<code xml> | <code xml> | ||
<!-- wizard definieren --> | <!-- wizard definieren --> | ||
Line 360: | Line 348: | ||
<button string=" | <button string=" | ||
</ | </ | ||
- | === Message an UI === | + | ===== Message an UI ===== |
<code python> | <code python> | ||
raise osv.osv.except_osv(" | raise osv.osv.except_osv(" | ||
</ | </ | ||
- | == Events == | + | ===== Events |
Felder in Views haben ein " | Felder in Views haben ein " | ||
[[http:// | [[http:// | ||
Line 384: | Line 372: | ||
</ | </ | ||
+ | |||
+ | ===== Objekt-ID per XML-ID holen ===== | ||
+ | <code python> | ||
+ | xml_id = " | ||
+ | try: | ||
+ | _, id = self.pool.get(' | ||
+ | except: | ||
+ | id = None | ||
+ | </ | ||
+ | |||
+ | @Miki: wo ist die get_object Methode??? | ||
+ | ===== menue.xml ===== | ||
+ | <code xml> | ||
+ | < | ||
+ | < | ||
+ | <record model=" | ||
+ | <field name=" | ||
+ | <field name=" | ||
+ | <field name=" | ||
+ | </ | ||
+ | <record model=" | ||
+ | <field name=" | ||
+ | <field name=" | ||
+ | <field name=" | ||
+ | <field name=" | ||
+ | <field name=" | ||
+ | #method must have params(self, | ||
+ | obj.a_cool_method() | ||
+ | | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | < | ||
+ | < | ||
+ | | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ===== view.xml ===== | ||
+ | <code xml> | ||
+ | < | ||
+ | < | ||
+ | <record id=" | ||
+ | <field name=" | ||
+ | <field name=" | ||
+ | <field name=" | ||
+ | <field name=" | ||
+ | <tree string=" | ||
+ | < | ||
+ | <field name=" | ||
+ | <field name=" | ||
+ | <field name=" | ||
+ | < | ||
+ | < | ||
+ | <field name=" | ||
+ | <field name=" | ||
+ | <field name=" | ||
+ | <field name=" | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | <record id=" | ||
+ | <field name=" | ||
+ | <field name=" | ||
+ | <field name=" | ||
+ | <field name=" | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | <record id=" | ||
+ | <field name=" | ||
+ | <field name=" | ||
+ | <field name=" | ||
+ | <field name=" | ||
+ | <form string=" | ||
+ | <field name=" | ||
+ | <field name=" | ||
+ | <field name=" | ||
+ | <field name=" | ||
+ | <group colspan=" | ||
+ | < | ||
+ | <group colspan=" | ||
+ | <field name=" | ||
+ | <field name=" | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | <group colspan=" | ||
+ | <field name=" | ||
+ | | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | <field name=" | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | | ||
+ | <record model=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | <field name=" | ||
+ | <field name=" | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ===== Action-Button und Methode aus Model ===== | ||
+ | |||
+ | **Methode in Model**: | ||
+ | <code python> | ||
+ | def assign_task_to_me(self, | ||
+ | |||
+ | ====== | ||
+ | | ||
+ | </ | ||
+ | |||
+ | **View XML**: | ||
+ | <code xml> | ||
+ | <button name=" | ||
+ | </ | ||
+ | ===== Kontextbezogenes Editieren ===== | ||
+ | <code xml> | ||
+ | <field name=" | ||
+ | </ | ||
+ | |||
+ | ===== SQL Constraints in Python-Klassen ===== | ||
+ | <code python> | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | ] | ||
+ | |||
+ | |||
+ | </ | ||
+ | |||
+ | ===== Tree Farben ===== | ||
+ | <code xml> | ||
+ | <tree colors=" | ||
+ | </ | ||