import json import requests from django import forms from django.urls import reverse from django.apps import apps from django.contrib.gis.geos import GEOSGeometry, fromstr, MultiPolygon from django.contrib.gis.db import models from django.contrib.sitemaps import Sitemap from django.utils.safestring import mark_safe from django.utils import timezone from django.conf import settings from utils.util import render_images, extract_main_image, markdown_to_html from locations.models import Route class Trip(models.Model): """Model to define trips""" title = models.CharField(max_length=50) subtitle = models.CharField(max_length=200, blank=True) slug = models.SlugField(unique_for_date='pub_date') dek_markdown = models.TextField() dek_html = models.TextField(null=True, blank=True) pub_date = models.DateTimeField('Date published') start_date = models.DateTimeField('Date started') end_date = models.DateTimeField('Date ended') route = models.ForeignKey(Route, on_delete=models.CASCADE) def get_absolute_url(self): return "/trips/%s/" % (self.slug) def __str__(self): return self.title def save(self, *args, **kwargs): created = self.pk is None if not created: md = render_images(self.dek_markdown) self.dek_html = markdown_to_html(md) super(Trip, self).save(*args, **kwargs)