summaryrefslogtreecommitdiff
path: root/app/unused_apps/trips/models.py
blob: 76941f2f8396c58e1167e2a2cac31e2be8b3fa49 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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)