diff --git a/peeringdb_server/migrations/0105_carrier_website_optional.py b/peeringdb_server/migrations/0105_carrier_website_optional.py new file mode 100644 index 00000000..b0b124f5 --- /dev/null +++ b/peeringdb_server/migrations/0105_carrier_website_optional.py @@ -0,0 +1,19 @@ +# Generated by Django 3.2.16 on 2023-01-16 12:41 + +from django.db import migrations +import django_peeringdb.models.abstract + + +class Migration(migrations.Migration): + + dependencies = [ + ('peeringdb_server', '0104_mtu_choices'), + ] + + operations = [ + migrations.AlterField( + model_name='carrier', + name='website', + field=django_peeringdb.models.abstract.URLField(blank=True, max_length=255, null=True, verbose_name='Website'), + ), + ] diff --git a/peeringdb_server/serializers.py b/peeringdb_server/serializers.py index 19bcc473..264f03a4 100644 --- a/peeringdb_server/serializers.py +++ b/peeringdb_server/serializers.py @@ -1827,8 +1827,6 @@ class CarrierSerializer(ModelSerializer): org = serializers.SerializerMethodField() - website = serializers.URLField() - def validate_create(self, data): # we don't want users to be able to create carriers if the parent # organization status is pending or deleted @@ -1862,6 +1860,16 @@ class CarrierSerializer(ModelSerializer): return self.sub_serializer(OrganizationSerializer, inst.org) + def to_representation(self, data): + + representation = super().to_representation(data) + + if not representation.get("website"): + representation["website"] = self.instance.org.website + + return representation + + class InternetExchangeFacilitySerializer(ModelSerializer): """ Serializer for peeringdb_server.models.InternetExchangeFacility diff --git a/peeringdb_server/templates/site/view.html b/peeringdb_server/templates/site/view.html index 44da7254..64935758 100644 --- a/peeringdb_server/templates/site/view.html +++ b/peeringdb_server/templates/site/view.html @@ -126,7 +126,7 @@