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 @@
{{ row.label }}
{% else %} -
{% if row.notify_incomplete %}{% endif %} {{ row.label }} {% if row.help_text %}{% endif %} - {% if row.helper_text %} - - {% endif %}
+ {% if row.edit_label %} + + + +
{% if row.notify_incomplete %}{% endif %} {{ row.edit_label }} + {% if row.help_text or row.edit_help_text %}{% endif %} +
+ + {% endif %} {% if row.type == "url" %} diff --git a/peeringdb_server/views.py b/peeringdb_server/views.py index 9bcb4702..719b87a3 100644 --- a/peeringdb_server/views.py +++ b/peeringdb_server/views.py @@ -1854,6 +1854,8 @@ def view_carrier(request, id): "type": "url", "name": "website", "label": _("Company Website"), + "edit_label": _("Company Website Override"), + "edit_help_text": _("If this field is set, it will be displayed on this record. If not, we will display the website from the organization record this is tied to"), "value": data.get("website", dismiss), }, {