Beispiel #1
0
def setup_data_dictionary(domain,
                          case_type_name,
                          prop_list=None,
                          allowed_values=None):
    prop_list = prop_list or []
    allowed_values = allowed_values or {}
    CaseType.get_or_create(domain, case_type_name)
    for prop_name, data_type in prop_list:
        prop = CaseProperty.get_or_create(prop_name, case_type_name, domain)
        prop.data_type = data_type
        prop.save()
        if prop_name in allowed_values:
            for value in allowed_values[prop_name]:
                CasePropertyAllowedValue.objects.get_or_create(
                    case_property=prop, allowed_value=value)
Beispiel #2
0
def update_data_dictionary(domain_link):
    if domain_link.is_remote:
        master_results = remote_get_data_dictionary(domain_link)
    else:
        master_results = local_get_data_dictionary(domain_link.master_domain)

    # Start from an empty set of CaseTypes and CaseProperties in the linked domain.
    CaseType.objects.filter(domain=domain_link.linked_domain).delete()

    # Create CaseType and CaseProperty as necessary
    for case_type_name, case_type_desc in master_results.items():
        case_type_obj = CaseType.get_or_create(domain_link.linked_domain, case_type_name)
        case_type_obj.description = case_type_desc['description']
        case_type_obj.fully_generated = case_type_desc['fully_generated']
        case_type_obj.save()

        for case_property_name, case_property_desc in case_type_desc['properties'].items():
            case_property_obj = CaseProperty.get_or_create(case_property_name,
                                                           case_type_obj.name,
                                                           domain_link.linked_domain)
            case_property_obj.description = case_property_desc['description']
            case_property_obj.deprecated = case_property_desc['deprecated']
            case_property_obj.data_type = case_property_desc['data_type']
            case_property_obj.group = case_property_desc['group']
            case_property_obj.save()