def reverse_obj( obj): """Меняет местами ключ и значение""" return {status_code: name for name, status_code in obj.items()} class Ticket: TICKET_TYPES = ( (1, "ST_REQUEST", [ [111, 121, 149, 159], [110, 121, 149, 159], [121, 131, 149, 159], [131, 141, 149], [141, 151, 110], [149, 151, 110], [159], [151] ]), (2, "SERVICE_REQUEST", [ [210, 211, 251], [211, 212, 220, 238, 249], [212, 221, 229, 238, 249], [221, 222, 238, 249], [220, 211, 238, 249], [229, 211, 251], [222, 231, 238, 249], [231, 241, 238, 249], [238, 231, 239, 211, 212, 221, 220, 222, 249], [239, 231, 239, 211, 212, 221, 220, 222, 249], [241, 251], [249, 251], [251] ]), (3, "ACCESS_REQUEST", [ [320, 321, 359], [321, 359, 451], [359, 351] [351] ]), (4, "NEG_REQUEST", [ [420, 421, 459], [421, 459, 451], [459, 451] [451] ]) ) request_type = { "NEW": 111, "REOPENED": 110, "ASSIGNED": 121, "IN_PROCESS": 131, "WONTFIX": 149, "DONE": 141, "DUPLICATE": 159, "CLOSED": 151 } service_request_type = { "TEMPLATE": 210, "BOOKED": 211, "ASSIGNED": 212, "ACCEPTED": 221, "PENDING": 220, "DECLINED": 229, "PRE_START": 222, "PROCESS": 231, "PRE_FORCEMAJEUER": 238, "FORCEMAJEUER": 239, "DONE": 241, "CANCELLED": 249, "CLOSED": 251 } access_request_type = { "PENDING": 320, "ACCEPTED": 321, "DECLINED": 359, "CLOSED": 351 } neg_request_type = { "PENDING": 420, "ACCEPTED": 421, "DECLINED": 459, "CLOSED": 451 } TICKET_STATUSES_NAMES = reverse_obj(request_type) | \ reverse_obj(service_request_type) | \ reverse_obj(access_request_type) | \ reverse_obj(neg_request_type) TICKET_TYPES_CHOICES = tuple((item[0], item[1]) for item in TICKET_TYPES) LIFE_CYCLE_DICT = dict((item[0], item[2]) for item in TICKET_TYPES)