Ejemplo n.º 1
0
def generate_services():
    """Create services unless they already exist.

    Also assigns allowed data fields for each created service.
    """
    services = []
    for service_type in ServiceType:
        service = Service.objects.filter(service_type=service_type).first()
        if not service:
            service = Service(service_type=service_type,
                              title=service_type.name)
            if service_type in SERVICE_TRANSLATIONS:
                for language in ["fi", "en", "sv"]:
                    service.set_current_language(language)
                    service.title = SERVICE_TRANSLATIONS[service_type][
                        "title"][language]
                    service.description = SERVICE_TRANSLATIONS[service_type][
                        "description"][language]
            service.save()
            for field in AllowedDataField.objects.all():
                if (field.field_name != "ssn"
                        or service.service_type == ServiceType.BERTH):
                    service.allowed_data_fields.add(field)
        services.append(service)
    return services
Ejemplo n.º 2
0
def generate_services():
    """Create services unless they already exist.

    Also assigns allowed data fields for each created service.
    """
    services = []
    for service_spec in SERVICES:
        service_name = service_spec["name"]
        try:
            service = Service.objects.get(name=service_name)
        except Service.DoesNotExist:
            service = Service(name=service_name, title=service_name)
            for language, translations in service_spec.get("translations",
                                                           {}).items():
                service.set_current_language(language)
                for field, text in translations.items():
                    setattr(service, field, text)
            service.save()

            allowed_data_fields = service_spec.get("allowed_data_fields", [])
            for field in AllowedDataField.objects.filter(
                    field_name__in=allowed_data_fields):
                service.allowed_data_fields.add(field)
        services.append(service)
    return services