src/notes/models/core.py
author ymh <ymh.work@gmail.com>
Fri, 30 Nov 2018 10:53:15 +0100
changeset 183 f8f3af9e5c83
parent 142 56850f5c73f6
permissions -rw-r--r--
Change the settings to avoid using Session authentication for rest framework as it raise exceptions in case client and backend are on the same domain On the filter, adapt to take into account new version of django_filters
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
24
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
"""
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
irinotes core module
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
"""
126
ba8bc0199464 add log api for syncing
ymh <ymh.work@gmail.com>
parents: 71
diff changeset
     4
from auditlog.registry import auditlog
24
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
from django.conf import settings
131
adad5563603c add personal group, default_group to users and add group info to session on backend
ymh <ymh.work@gmail.com>
parents: 126
diff changeset
     6
from django.contrib.auth.models import Group
24
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
from django.db import models
71
75dc1e794cf4 add date field on session object
ymh <ymh.work@gmail.com>
parents: 31
diff changeset
     8
from django.utils import timezone
24
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
from django.utils.translation import ugettext_lazy as _
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
from .base import Model
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
class Session(Model):
71
75dc1e794cf4 add date field on session object
ymh <ymh.work@gmail.com>
parents: 31
diff changeset
    15
    """
75dc1e794cf4 add date field on session object
ymh <ymh.work@gmail.com>
parents: 31
diff changeset
    16
    Class modeling a Session
75dc1e794cf4 add date field on session object
ymh <ymh.work@gmail.com>
parents: 31
diff changeset
    17
    """
24
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
    class Meta:
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
        verbose_name = _('Session')
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
        verbose_name_plural = _('Sessions')
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
71
75dc1e794cf4 add date field on session object
ymh <ymh.work@gmail.com>
parents: 31
diff changeset
    22
    date = models.DateTimeField(default=timezone.now, verbose_name=_('Session|date'))
75dc1e794cf4 add date field on session object
ymh <ymh.work@gmail.com>
parents: 31
diff changeset
    23
24
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
    owner = models.ForeignKey(
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
        settings.AUTH_USER_MODEL,
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
        on_delete=models.CASCADE,
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
    )
31
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    28
    title = models.TextField(
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    29
        null=True,
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    30
        blank=True,
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    31
        verbose_name=_('Session|title')
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    32
    )
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    33
    description = models.TextField(
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    34
        null=True,
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    35
        blank=True,
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    36
        verbose_name=_('Session|description')
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    37
    )
131
adad5563603c add personal group, default_group to users and add group info to session on backend
ymh <ymh.work@gmail.com>
parents: 126
diff changeset
    38
    group = models.ForeignKey(
adad5563603c add personal group, default_group to users and add group info to session on backend
ymh <ymh.work@gmail.com>
parents: 126
diff changeset
    39
        Group,
adad5563603c add personal group, default_group to users and add group info to session on backend
ymh <ymh.work@gmail.com>
parents: 126
diff changeset
    40
        null=False,
142
56850f5c73f6 - upgrade libraries
ymh <ymh.work@gmail.com>
parents: 131
diff changeset
    41
        verbose_name=_('Session|group'),
56850f5c73f6 - upgrade libraries
ymh <ymh.work@gmail.com>
parents: 131
diff changeset
    42
        on_delete=models.PROTECT
131
adad5563603c add personal group, default_group to users and add group info to session on backend
ymh <ymh.work@gmail.com>
parents: 126
diff changeset
    43
    )
31
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    44
    protocol = models.TextField(
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    45
        null=True,
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    46
        blank=True,
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    47
        verbose_name=_('Session|protocol')
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    48
    )
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    49
126
ba8bc0199464 add log api for syncing
ymh <ymh.work@gmail.com>
parents: 71
diff changeset
    50
    def get_additional_data(self):
ba8bc0199464 add log api for syncing
ymh <ymh.work@gmail.com>
parents: 71
diff changeset
    51
        return {'ext_id': str(self.ext_id)}
ba8bc0199464 add log api for syncing
ymh <ymh.work@gmail.com>
parents: 71
diff changeset
    52
ba8bc0199464 add log api for syncing
ymh <ymh.work@gmail.com>
parents: 71
diff changeset
    53
    def __str__(self):
ba8bc0199464 add log api for syncing
ymh <ymh.work@gmail.com>
parents: 71
diff changeset
    54
        return self.title
ba8bc0199464 add log api for syncing
ymh <ymh.work@gmail.com>
parents: 71
diff changeset
    55
24
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
class Note(Model):
71
75dc1e794cf4 add date field on session object
ymh <ymh.work@gmail.com>
parents: 31
diff changeset
    58
    """
75dc1e794cf4 add date field on session object
ymh <ymh.work@gmail.com>
parents: 31
diff changeset
    59
    Class nodeling a Note
75dc1e794cf4 add date field on session object
ymh <ymh.work@gmail.com>
parents: 31
diff changeset
    60
    """
24
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
    class Meta:
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
        verbose_name = _('Note')
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
        verbose_name_plural = _('Notes')
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
        ordering = ["tc_start"]
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
126
ba8bc0199464 add log api for syncing
ymh <ymh.work@gmail.com>
parents: 71
diff changeset
    66
    def get_additional_data(self):
ba8bc0199464 add log api for syncing
ymh <ymh.work@gmail.com>
parents: 71
diff changeset
    67
        return {'ext_id': str(self.ext_id)}
ba8bc0199464 add log api for syncing
ymh <ymh.work@gmail.com>
parents: 71
diff changeset
    68
24
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
    tc_start = models.DateTimeField(verbose_name=_('Note|tc_start'))
3b3999550508 first data model for backend
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
    tc_end = models.DateTimeField(verbose_name=_('Note|tc_end'))
31
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    71
    session = models.ForeignKey(
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    72
        Session,
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    73
        on_delete=models.CASCADE,
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    74
        related_name='notes',
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    75
        verbose_name=_('Note|session')
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    76
    )
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    77
    plain = models.TextField(
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    78
        null=True,
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    79
        blank=True,
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    80
        verbose_name=_('Note|plain')
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    81
    )
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    82
    html = models.TextField(
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    83
        null=True,
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    84
        blank=True,
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    85
        verbose_name=_('Note|html')
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    86
    )
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    87
    raw = models.TextField(
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    88
        null=True,
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    89
        blank=True,
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    90
        verbose_name=_('Note|raw')
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    91
    )
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    92
    margin_note = models.TextField(
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    93
        null=True,
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    94
        blank=True,
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    95
        verbose_name=_('Note|margin_note')
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    96
    )
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    97
    categorization = models.TextField(
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    98
        null=True,
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
    99
        blank=True,
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
   100
        verbose_name=_('Note|categorization')
63be3ce389f7 improve api
ymh <ymh.work@gmail.com>
parents: 24
diff changeset
   101
    )
126
ba8bc0199464 add log api for syncing
ymh <ymh.work@gmail.com>
parents: 71
diff changeset
   102
auditlog.register(Session)
ba8bc0199464 add log api for syncing
ymh <ymh.work@gmail.com>
parents: 71
diff changeset
   103
auditlog.register(Note)