ministryofjustice/moj-product-dashboard

View on GitHub
dashboard/apps/dashboard/models/link.py

Summary

Maintainability
A
0 mins
Test Coverage
# -*- coding: utf-8 -*-
from urllib.parse import urlparse

from django.db import models


class Link(models.Model):
    product = models.ForeignKey('Product', related_name='links')
    name = models.CharField(max_length=150, null=True, blank=True)
    url = models.URLField()
    note = models.TextField(null=True, blank=True)

    class Meta:
        ordering = ['url']

    def __str__(self):
        return self.name

    @property
    def type(self):
        hostname = urlparse(self.url).hostname
        return hostname.replace('.', '-')

    def as_dict(self):
        return {
            'name': self.name,
            'url': self.url,
            'note': self.note,
            'type': self.type,
        }