Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

Gibt alle Inhalte von language und deren ids zurück.

Sektionen sollen beliebig weit verschachtelbar sein. Dies wird durch Rekussion erreicht. Zusätlich sollen beim löschen einer Sektion auch alle darunterliegenden Sektione gelöscht werden.

In name_get ist die Rekursion definiert, es wird die id und eine Liste der Untersektionen in umgekehrter Reihenfolge zurückgegeben.

Codeblock
languagepy
themeMidnight
@api.multi
def name_get(self):
    def get_names(section):
        res = []
        while section:
            res.append(section.name)
            section = section.parent_id
        return res
    return [(section.id, " / ".join(reversed(get_names(section)))) for section in self]

def _name_get_fnc(self):
    res = self.name_get()

    names = []
    for  i in res:
        names.append(i[1])

    for id, name in itertools.izip(self, names):
        id.complete_name = name
    return res

Um alle Untersektionen einer Sektion zu löschen muss die unlink Methode überschrieben werden.

Codeblock
languagepy
themeMidnight
@api.multi
def unlink(self):
    for section in self:
        section_pool = self.env['requirement.sections']
        section_objs = section_pool.search([('parent_id', '=', section.id)])
        for section_obj in section_objs:
            section_obj.unlink()
    return super(sections, self).unlink()

Dies wird in der Tree view angezeigt.

requirement_sections_view.xml

Codeblock
languagexml
themeMidnight
<record id="requirement_section_tree_view" model="ir.ui.view">
    <field name="name">line treeview</field>
    <field name="model">requirement.sections</field>
    <field name= "arch" type = "xml">
        <tree string="lines" default_order="write_date desc">
            <field name="complete_name"/>
            <field name="write_date"/>
        </tree>
    </field>
</record>

Das Ergbnis sieht dann so aus.

Image Added