first commit
This commit is contained in:
60
modules/product_classification_taxonomic/product.py
Normal file
60
modules/product_classification_taxonomic/product.py
Normal file
@@ -0,0 +1,60 @@
|
||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
from trytond.model import DeactivableMixin, ModelSQL, ModelView, fields
|
||||
from trytond.modules.product_classification.product import (
|
||||
ClassificationMixin, classification_tree)
|
||||
from trytond.pool import PoolMeta
|
||||
|
||||
|
||||
class Template(metaclass=PoolMeta):
|
||||
__name__ = 'product.template'
|
||||
|
||||
@classmethod
|
||||
def _get_classification(cls):
|
||||
return super()._get_classification() + [
|
||||
'product.taxon', 'product.cultivar']
|
||||
|
||||
|
||||
class Taxon(classification_tree('product.taxon'), ModelSQL, ModelView):
|
||||
__name__ = 'product.taxon'
|
||||
rank = fields.Selection([
|
||||
(None, ""),
|
||||
('domain', 'Domain'),
|
||||
('kingdom', 'Kingdom'),
|
||||
('phylum', 'Phylum'),
|
||||
('division', 'Division'),
|
||||
('class', 'Class'),
|
||||
('order', 'Order'),
|
||||
('family', 'Family'),
|
||||
('tribe', 'Tribe'),
|
||||
('genus', 'Genus'),
|
||||
('section', 'Section'),
|
||||
('series', 'Series'),
|
||||
('species', 'Species'),
|
||||
('variety', 'Variety'),
|
||||
('form', 'Form'),
|
||||
], "Type", sort=False)
|
||||
|
||||
|
||||
class Cultivar(ClassificationMixin, ModelSQL, ModelView):
|
||||
__name__ = 'product.cultivar'
|
||||
taxon = fields.Many2One('product.taxon', 'Taxon', required=True)
|
||||
groups = fields.Many2Many('product.cultivar-product.cultivar.group',
|
||||
'cultivar', 'group', 'Groups')
|
||||
|
||||
|
||||
class CultivarGroup(DeactivableMixin, ModelSQL, ModelView):
|
||||
__name__ = 'product.cultivar.group'
|
||||
name = fields.Char('Name', translate=True)
|
||||
cultivars = fields.Many2Many('product.cultivar-product.cultivar.group',
|
||||
'group', 'cultivar', 'Cultivars')
|
||||
|
||||
|
||||
class Cultivar_CultivarGroup(ModelSQL):
|
||||
__name__ = 'product.cultivar-product.cultivar.group'
|
||||
cultivar = fields.Many2One(
|
||||
'product.cultivar', "Cultivar", required=True)
|
||||
group = fields.Many2One(
|
||||
'product.cultivar.group', "Group", required=True)
|
||||
|
||||
# TODO Grex
|
||||
Reference in New Issue
Block a user