Advertisement
Guest User

Untitled

a guest
Sep 19th, 2022
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.97 KB | None | 0 0
  1. class QualityTask(ModelSQL, ModelView, Workflow):
  2.     "Quality Task"
  3.     __name__ = 'quality.task'
  4.  
  5.     company = fields.Many2One(
  6.         'company.company', "Company", required=True, readonly=True,
  7.         ondelete='CASCADE')
  8.     quality_task_dictionary = fields.Many2One(
  9.         'quality.task.dictionary', "Quality Task Dictionary",
  10.         required=True, readonly=True)
  11.     product = fields.Many2One('product.product', "Product", readonly=True)
  12.     origin = fields.Reference(
  13.         "Origin", selection='get_origin', select=True,
  14.         required=True, readonly=True)
  15.     customer = fields.Function(fields.Many2One(
  16.             'party.party', "Customer",
  17.             context={
  18.                 'company': Eval('company', -1),
  19.                 },
  20.             depends={'company'}),
  21.         'get_customer', searcher='search_customer')
  22.     task_name = fields.Function(fields.Char("Name"), 'get_task_name')
  23.     task_description = fields.Function(
  24.         fields.Text("Description"), 'get_task_description')
  25.     task_type = fields.Selection([
  26.         ('administrative', "Administrative"),
  27.         ('quality', "Quality")
  28.     ], "Type of the task", select=True, readonly=True, required=True)
  29.     planned_date = fields.Date(
  30.         "Planned Date", select=True, readonly=True, required=True)
  31.     note = fields.Text(
  32.         "Note",
  33.         states={
  34.             'readonly': Eval('state') != 'requested',
  35.         })
  36.     bypassed_by = employee_field("Bypassed by")
  37.     done_by = employee_field("Done by")
  38.     cancelled_by = employee_field("Cancelled by")
  39.     state = fields.Selection([
  40.         ('requested', "Requested"),
  41.         ('done', "Done"),
  42.         ('bypassed', "Bypassed"),
  43.         ('cancelled', "Cancelled"),
  44.     ], "State", readonly=True, required=True)
  45.  
  46.     @classmethod
  47.     def __setup__(cls):
  48.         super(QualityTask, cls).__setup__()
  49.         cls._order = [
  50.             ('planned_date', 'DESC'),
  51.         ]
  52.         cls._transitions = set((
  53.             ('requested', 'cancelled'),
  54.             ('cancelled', 'requested'),
  55.             ('requested', 'bypassed'),
  56.             ('bypassed', 'requested'),
  57.             ('requested', 'done'),
  58.         ))
  59.         cls._buttons.update({
  60.             'request': {
  61.                 'invisible': ~Eval('state').in_(['cancelled', 'bypassed']),
  62.                 'depends': ['state'],
  63.             },
  64.             'cancel': {
  65.                 'invisible': Eval('state') != 'requested',
  66.                 'depends': ['state'],
  67.             },
  68.             'done': {
  69.                 'invisible': Eval('state') != 'requested',
  70.                 'depends': ['state'],
  71.             },
  72.         })
  73.  
  74.     def __eq__(self, other):
  75.         return (self.origin == other.origin
  76.             and self.quality_task_dictionary == other.quality_task_dictionary
  77.             and self.product == other.product)
  78.  
  79.     def __hash__(self):
  80.         return hash((self.origin,
  81.                     self.quality_task_dictionary,
  82.                     self.product))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement