summaryrefslogtreecommitdiff
path: root/app/notes/models.py
blob: 8735056a4a86711d8c33c2f152f510fb6a96dfb5 (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
41
42
43
44
45
46
47
48
49
50
from django import forms
from django.contrib.gis.db import models
from django.utils import timezone
from django.conf import settings
from django.urls import reverse
from locations.models import Location

from locations.models import CheckIn
from utils.util import markdown_to_html, render_images


class Note(models.Model):
    title = models.CharField(max_length=250, null=True, blank=True)
    slug = models.SlugField(unique_for_date='pub_date', blank=True)
    pub_date = models.DateTimeField(default=timezone.now)
    body_html = models.TextField(blank=True)
    body_markdown = models.TextField('Note')

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse("notes:detail", kwargs={"year": self.pub_date.year, "month": self.pub_date.strftime("%m"), "slug": self.slug})

    @property
    def region(self):
        return self.location.state.country.lux_region

    @property
    def longitude(self):
        '''Get the site's longitude.'''
        return round(self.point.x, 2)

    @property
    def latitude(self):
        '''Get the site's latitude.'''
        return round(self.point.y, 2)

    @property
    def get_previous_published(self):
        return self.get_previous_by_pub_date()

    @property
    def get_next_published(self):
        return self.get_next_by_pub_date()

    def save(self, *args, **kwargs):
        md = render_images(self.body_markdown)
        self.body_html = markdown_to_html(md)
        super(Note, self).save()