def validate_parametric_role(name, param1, param2, constraints=None): """ Check if the parameters passed on creation of a new (parametric) role are allowed in the application domain. """ for (role_name, model_name_1, model_name_2) in constraints: ct_1 = get_ctype_from_model_label(model_name_1) ct_2 = get_ctype_from_model_label(model_name_2) param1_ct = ContentType.objects.get_for_model(param1) param2_ct = ContentType.objects.get_for_model(param2) if name == role_name and ct_1 == param1_ct and ct_2 == param2_ct: # parameters are of the right type for the role return True return False
def validate_parametric_role(name, param1, param2, constraints=None): """ Check if the parameters passed on creation of a new (parametric) role are allowed in the application domain. """ for (role_name, model_name_1, model_name_2) in constraints: ct_1 = get_ctype_from_model_label(model_name_1) ct_2 = get_ctype_from_model_label(model_name_2) param1_ct = ContentType.objects.get_for_model(param1) param2_ct = ContentType.objects.get_for_model(param2) if name == role_name and ct_1 == param1_ct and ct_2 == param2_ct: # parameters are of the right type for the role return True return False
def order(self): order_ct = get_ctype_from_model_label("gas.GASSupplierOrder") GASSupplierOrder = order_ct.model_class() if self.content_type_1 == order_ct: try: order = GASSupplierOrder.objects.get(pk=self.obj_id_1) return order except GASSupplierOrder.DoesNotExist: return None elif self.content_type_2 == order_ct: try: order = GASSupplierOrder.objects.get(pk=self.obj_id_2) return order except GASSupplierOrder.DoesNotExist: return None else: return None
def supplier(self): supplier_ct = get_ctype_from_model_label("supplier.Supplier") Supplier = supplier_ct.model_class() if self.content_type_1 == supplier_ct: try: supplier = Supplier.objects.get(pk=self.obj_id_1) return supplier except Supplier.DoesNotExist: return None elif self.content_type_2 == supplier_ct: try: supplier = Supplier.objects.get(pk=self.obj_id_2) return supplier except Supplier.DoesNotExist: return None else: return None
def gas(self): gas_ct = get_ctype_from_model_label("gas.GAS") GAS = gas_ct.model_class() if self.content_type_1 == gas_ct: try: gas = GAS.objects.get(pk=self.obj_id_2) return gas except GAS.DoesNotExist: return None elif self.content_type_2 == gas_ct: try: gas = GAS.objects.get(pk=self.obj_id_2) return gas except GAS.DoesNotExist: return None else: return None
def order(self): order_ct = get_ctype_from_model_label('gas.GASSupplierOrder') GASSupplierOrder = order_ct.model_class() if self.content_type_1 == order_ct: try: order = GASSupplierOrder.objects.get(pk=self.obj_id_1) return order except GASSupplierOrder.DoesNotExist: return None elif self.content_type_2 == order_ct: try: order = GASSupplierOrder.objects.get(pk=self.obj_id_2) return order except GASSupplierOrder.DoesNotExist: return None else: return None
def supplier(self): supplier_ct = get_ctype_from_model_label('supplier.Supplier') Supplier = supplier_ct.model_class() if self.content_type_1 == supplier_ct: try: supplier = Supplier.objects.get(pk=self.obj_id_1) return supplier except Supplier.DoesNotExist: return None elif self.content_type_2 == supplier_ct: try: supplier = Supplier.objects.get(pk=self.obj_id_2) return supplier except Supplier.DoesNotExist: return None else: return None
def gas(self): gas_ct = get_ctype_from_model_label('gas.GAS') GAS = gas_ct.model_class() if self.content_type_1 == gas_ct: try: gas = GAS.objects.get(pk=self.obj_id_2) return gas except GAS.DoesNotExist: return None elif self.content_type_2 == gas_ct: try: gas = GAS.objects.get(pk=self.obj_id_2) return gas except GAS.DoesNotExist: return None else: return None
def testModelNotExisting(self): '''Return None if the label points to a non existing model''' ct = get_ctype_from_model_label('auth.Foo') self.assertIsNone(ct)
def testMalformedLabel(self): '''Return None if the label is malformed''' ct = get_ctype_from_model_label('auth:User') self.assertIsNone(ct)
def testOK(self): '''Verify the right ContentType is returned if the model label is good''' user_ct = ContentType.objects.get_for_model(User) ct = get_ctype_from_model_label('auth.User') self.assertEqual(ct, user_ct)
def testModelNotExisting(self): '''Return None if the label points to a non existing model''' ct = get_ctype_from_model_label('auth.Foo') self.assertIsNone(ct)
def testMalformedLabel(self): '''Return None if the label is malformed''' ct = get_ctype_from_model_label('auth:User') self.assertIsNone(ct)
def testOK(self): '''Verify the right ContentType is returned if the model label is good''' user_ct = ContentType.objects.get_for_model(User) ct = get_ctype_from_model_label('auth.User') self.assertEqual(ct, user_ct)