use python_2_unicode_compatible

This commit is contained in:
j 2017-03-03 08:56:35 +01:00
parent 72fdc8ed4d
commit f0a4aba751
24 changed files with 130 additions and 53 deletions

View file

@ -5,6 +5,7 @@ from __future__ import division, print_function, absolute_import
import re
import unicodedata
from django.utils.encoding import python_2_unicode_compatible
from django.db import models, transaction
from django.db.models import Q
from django.contrib.auth.models import User
@ -81,6 +82,7 @@ def get_matches(obj, model, layer_type, qs=None):
matches = [-1]
return Annotation.objects.filter(id__in=matches)
@python_2_unicode_compatible
class Annotation(models.Model):
objects = managers.AnnotationManager()
@ -380,7 +382,7 @@ class Annotation(models.Model):
return j
def __unicode__(self):
def __str__(self):
return u"%s %s-%s" % (self.public_id, self.start, self.end)
def cleanup_related(sender, **kwargs):

View file

@ -5,20 +5,23 @@ from __future__ import division, print_function, absolute_import
import json
from django.db import models
from django.utils.encoding import python_2_unicode_compatible
from . import monkey_patch
from . import tasks
@python_2_unicode_compatible
class Page(models.Model):
created = models.DateTimeField(auto_now_add=True)
modified = models.DateTimeField(auto_now=True)
name = models.CharField(max_length=1024, unique=True)
text = models.TextField(blank=True)
def __unicode__(self):
def __str__(self):
return self.name
@python_2_unicode_compatible
class Settings(models.Model):
created = models.DateTimeField(auto_now_add=True)
@ -26,7 +29,7 @@ class Settings(models.Model):
key = models.CharField(max_length=1024, unique=True)
value = models.TextField(blank=True)
def __unicode__(self):
def __str__(self):
return self.key
@classmethod

View file

@ -13,6 +13,7 @@ from django.conf import settings
from django.contrib.auth.models import User
from django.db import models
from django.db.models.signals import pre_delete
from django.utils.encoding import python_2_unicode_compatible
from oxdjango import fields
import ox
@ -33,6 +34,7 @@ if not PY2:
def data_path(f, x):
return f.get_path('data.bin')
@python_2_unicode_compatible
class File(models.Model):
AV_INFO = (
'duration', 'video', 'audio', 'oshash', 'size',
@ -103,7 +105,7 @@ class File(models.Model):
objects = managers.FileManager()
def __unicode__(self):
def __str__(self):
return self.path
def parse_info(self):
@ -562,6 +564,7 @@ def delete_file(sender, **kwargs):
f.delete_files()
pre_delete.connect(delete_file, sender=File)
@python_2_unicode_compatible
class Volume(models.Model):
class Meta:
@ -573,7 +576,7 @@ class Volume(models.Model):
user = models.ForeignKey(User, related_name='volumes')
name = models.CharField(max_length=1024)
def __unicode__(self):
def __str__(self):
return u"%s's %s" % (self.user, self.name)
def json(self):
@ -586,6 +589,7 @@ class Volume(models.Model):
def inttime():
return int(time.time())
@python_2_unicode_compatible
class Instance(models.Model):
class Meta:
@ -604,7 +608,7 @@ class Instance(models.Model):
file = models.ForeignKey(File, related_name='instances')
volume = models.ForeignKey(Volume, related_name='files')
def __unicode__(self):
def __str__(self):
return u"%s's %s <%s>" % (self.volume.user, self.path, self.file.oshash)
@property
@ -624,7 +628,7 @@ def frame_path(frame, name):
name = "%s%s" % (frame.position, ext)
return frame.file.get_path(name)
@python_2_unicode_compatible
class Frame(models.Model):
class Meta:
@ -643,7 +647,7 @@ class Frame(models.Model):
self.height = self.frame.height
super(Frame, self).save(*args, **kwargs)
def __unicode__(self):
def __str__(self):
return u'%s/%s' % (self.file, self.position)
def delete_frame(sender, **kwargs):
@ -655,6 +659,7 @@ pre_delete.connect(delete_frame, sender=Frame)
def stream_path(f, x):
return f.path(x)
@python_2_unicode_compatible
class Stream(models.Model):
class Meta:
@ -686,7 +691,7 @@ class Stream(models.Model):
def name(self):
return u"%sp.%s" % (self.resolution, self.format)
def __unicode__(self):
def __str__(self):
return u"%s/%s" % (self.file, self.name())
def get(self, resolution, format):

View file

@ -6,6 +6,8 @@ from datetime import datetime
from django.contrib.auth.models import User
from django.db import models
from django.utils.encoding import python_2_unicode_compatible
from oxdjango import fields
import ox
@ -16,12 +18,13 @@ from . import managers
'''
FIXME: remove this table more migrate to new ChangeLog
'''
@python_2_unicode_compatible
class Changelog(models.Model):
created = models.DateTimeField(auto_now_add=True)
type = models.CharField(max_length=255, db_index=True)
value = fields.DictField(default={})
def __unicode__(self):
def __str__(self):
return u'%s %s' % (self.type, self.created)
def json(self):
@ -46,6 +49,7 @@ def add_changelog(request, data, id=None):
'user': c.user.username,
})
@python_2_unicode_compatible
class Log(models.Model):
action = models.CharField(max_length=255, db_index=True)
@ -56,7 +60,7 @@ class Log(models.Model):
objects = managers.LogManager()
def __unicode__(self):
def __str__(self):
return u'%s %s %s' % (self.created, self.action, self.changeid)
def get_id(self):

View file

@ -4,6 +4,7 @@ from __future__ import division, print_function, absolute_import
from django.db import models
from django.conf import settings
from django.utils.encoding import python_2_unicode_compatible
import ox
@ -45,6 +46,7 @@ def get_layers(item, interval=None, user=None):
return layers
@python_2_unicode_compatible
class MetaClip(object):
def update_calculated_values(self):
start = self.start
@ -182,7 +184,7 @@ class MetaClip(object):
def public_id(self):
return u"%s/%0.03f-%0.03f" % (self.item.public_id, float(self.start), float(self.end))
def __unicode__(self):
def __str__(self):
return self.public_id
class Meta:

View file

@ -14,6 +14,7 @@ from django.db.models import Q, Sum, Max
from django.contrib.auth.models import User, Group
from django.db.models.signals import pre_delete
from django.conf import settings
from django.utils.encoding import python_2_unicode_compatible
from PIL import Image
import ox
@ -36,6 +37,7 @@ if not PY2:
def get_path(f, x):
return f.path(x)
@python_2_unicode_compatible
class Document(models.Model):
created = models.DateTimeField(auto_now_add=True)
@ -283,7 +285,7 @@ class Document(models.Model):
self.update_matches()
self.update_linked_documents()
def __unicode__(self):
def __str__(self):
return self.get_id()
def add(self, item):
@ -659,6 +661,7 @@ class ItemProperties(models.Model):
super(ItemProperties, self).save(*args, **kwargs)
@python_2_unicode_compatible
class Access(models.Model):
class Meta:
unique_together = ("document", "user")
@ -676,11 +679,12 @@ class Access(models.Model):
timesaccessed = Access.objects.filter(document=self.document).aggregate(Sum('accessed'))['accessed__sum']
Sort.objects.filter(document=self.document).update(timesaccessed=timesaccessed, accessed=self.access)
def __unicode__(self):
def __str__(self):
if self.user:
return u"%s/%s/%s" % (self.user, self.document, self.access)
return u"%s/%s" % (self.item, self.access)
@python_2_unicode_compatible
class Facet(models.Model):
'''
used for keys that can have multiple values like people, languages etc.
@ -696,7 +700,7 @@ class Facet(models.Model):
value = models.CharField(max_length=1000, db_index=True)
sortvalue = models.CharField(max_length=1000, db_index=True)
def __unicode__(self):
def __str__(self):
return u"%s=%s" % (self.key, self.value)
def save(self, *args, **kwargs):
@ -716,6 +720,7 @@ for key in settings.CONFIG['itemKeys']:
if key.get('sortType') == 'person':
Document.person_keys.append(key['id'])
@python_2_unicode_compatible
class Find(models.Model):
class Meta:
@ -725,7 +730,7 @@ class Find(models.Model):
key = models.CharField(max_length=200, db_index=True)
value = models.TextField(blank=True, db_index=settings.DB_GIN_TRGM)
def __unicode__(self):
def __str__(self):
return u'%s=%s' % (self.key, self.value)
'''

View file

@ -11,6 +11,8 @@ from django.db import models
from django.db.models import Max
from django.contrib.auth.models import User
from django.conf import settings
from django.utils.encoding import python_2_unicode_compatible
import ox
from oxdjango.fields import DictField, TupleField
@ -32,6 +34,7 @@ def get_collectionview():
def get_collectionsort():
return tuple(settings.CONFIG['user']['ui']['collectionSort'])
@python_2_unicode_compatible
class Collection(models.Model):
class Meta:
@ -107,7 +110,7 @@ class Collection(models.Model):
if documents:
CollectionDocument.objects.all().filter(document__id__in=documents, collection=self).delete()
def __unicode__(self):
def __str__(self):
return self.get_id()
def get_id(self):
@ -306,6 +309,7 @@ class Collection(models.Model):
path = source
return path
@python_2_unicode_compatible
class CollectionDocument(models.Model):
created = models.DateTimeField(auto_now_add=True)
modified = models.DateTimeField(auto_now=True)
@ -313,9 +317,10 @@ class CollectionDocument(models.Model):
index = models.IntegerField(default=0)
document = models.ForeignKey('document.Document')
def __unicode__(self):
def __str__(self):
return u'%s in %s' % (self.document, self.collection)
@python_2_unicode_compatible
class Position(models.Model):
class Meta:
@ -326,6 +331,6 @@ class Position(models.Model):
section = models.CharField(max_length=255)
position = models.IntegerField(default=0)
def __unicode__(self):
def __str__(self):
return u'%s/%s/%s' % (self.section, self.position, self.collection)

View file

@ -16,6 +16,7 @@ from django.conf import settings
from django.db import models, transaction
from django.db.models import Max
from django.contrib.auth.models import User
from django.utils.encoding import python_2_unicode_compatible
from annotation.models import Annotation
from item.models import Item
@ -29,6 +30,7 @@ from . import managers
def get_path(f, x): return f.path(x)
def get_icon_path(f, x): return get_path(f, 'icon.jpg')
@python_2_unicode_compatible
class Edit(models.Model):
class Meta:
@ -54,7 +56,7 @@ class Edit(models.Model):
poster_frames = TupleField(default=[], editable=False)
subscribed_users = models.ManyToManyField(User, related_name='subscribed_edits')
def __unicode__(self):
def __str__(self):
return u'%s (%s)' % (self.name, self.user)
@classmethod
@ -413,6 +415,7 @@ class Edit(models.Model):
#p.wait()
shutil.rmtree(tmp)
@python_2_unicode_compatible
class Clip(models.Model):
created = models.DateTimeField(auto_now_add=True)
modified = models.DateTimeField(auto_now=True)
@ -433,7 +436,7 @@ class Clip(models.Model):
objects = managers.ClipManager()
def __unicode__(self):
def __str__(self):
if self.annotation:
return u'%s' % self.annotation.public_id
return u'%s/%0.3f-%0.3f' % (self.item.public_id, self.start, self.end)
@ -521,6 +524,7 @@ class Clip(models.Model):
return clip.models.get_layers(item=item, interval=(start, end), user=user)
@python_2_unicode_compatible
class Position(models.Model):
class Meta:
@ -531,6 +535,6 @@ class Position(models.Model):
section = models.CharField(max_length=255)
position = models.IntegerField(default=0)
def __unicode__(self):
def __str__(self):
return u'%s/%s/%s' % (self.section, self.position, self.edit)

View file

@ -14,6 +14,7 @@ from django.db.models import Max
from django.contrib.auth.models import User
from django.db.models.signals import pre_delete, post_init
from django.conf import settings
from django.utils.encoding import python_2_unicode_compatible
import ox
from oxdjango import fields
@ -25,6 +26,7 @@ from document.models import Document
from . import managers
@python_2_unicode_compatible
class Entity(models.Model):
class Meta:
@ -64,7 +66,7 @@ class Entity(models.Model):
self.update_annotations()
self.update_find()
def __unicode__(self):
def __str__(self):
return self.get_id()
@classmethod
@ -253,6 +255,7 @@ post_init.connect(
)
@python_2_unicode_compatible
class DocumentProperties(models.Model):
class Meta:
@ -266,13 +269,14 @@ class DocumentProperties(models.Model):
index = models.IntegerField(default=0)
data = fields.DictField(default={})
def __unicode__(self):
def __str__(self):
return u"%r-%r" % (self.document, self.entity)
def save(self, *args, **kwargs):
super(DocumentProperties, self).save(*args, **kwargs)
@python_2_unicode_compatible
class Find(models.Model):
class Meta:
@ -282,5 +286,5 @@ class Find(models.Model):
key = models.CharField(max_length=200, db_index=True)
value = models.TextField(blank=True, db_index=settings.DB_GIN_TRGM)
def __unicode__(self):
def __str__(self):
return u"%s=%s" % (self.key, self.value)

View file

@ -4,6 +4,8 @@ from __future__ import division, print_function, absolute_import
from django.db import models, transaction
from django.contrib.auth.models import User
from django.utils.encoding import python_2_unicode_compatible
import ox
from oxdjango import fields
@ -16,6 +18,7 @@ from title.models import get_title_sort
from . import managers
@python_2_unicode_compatible
class Event(models.Model):
'''
Events are events in time that can be once or recurring,
@ -57,7 +60,7 @@ class Event(models.Model):
items = models.ManyToManyField(Item, blank=True, related_name='events')
annotations = models.ManyToManyField(Annotation, blank=True, related_name='events')
def __unicode__(self):
def __str__(self):
return self.name
@classmethod

View file

@ -8,6 +8,8 @@ from six.moves.urllib.parse import quote
from django.db import models
from django.db.models import Max
from django.db.models.signals import pre_delete
from django.utils.encoding import python_2_unicode_compatible
import ox
from oxdjango import fields
@ -16,6 +18,7 @@ from edit.models import Edit
from documentcollection.models import Collection
@python_2_unicode_compatible
class Item(models.Model):
created = models.DateTimeField(auto_now_add=True)
modified = models.DateTimeField(auto_now=True)
@ -150,7 +153,7 @@ class Item(models.Model):
del j[key]
return j
def __unicode__(self):
def __str__(self):
return u"%s" % (self.get_id())
def delete_item(type, contentid):

View file

@ -21,6 +21,7 @@ from django.conf import settings
from django.contrib.auth.models import User, Group
from django.db.models.signals import pre_delete
from django.utils import datetime_safe
from django.utils.encoding import python_2_unicode_compatible
import ox
from oxdjango import fields
@ -158,6 +159,7 @@ def get_poster_path(f, x):
def get_torrent_path(f, x):
return get_path(f, 'torrent.torrent')
@python_2_unicode_compatible
class Item(models.Model):
created = models.DateTimeField(auto_now_add=True)
modified = models.DateTimeField(auto_now=True)
@ -337,7 +339,7 @@ class Item(models.Model):
del c[t]
return c
def __unicode__(self):
def __str__(self):
year = self.get('year')
if year:
string = u'%s (%s)' % (ox.decode_html(self.get('title', 'Untitled')), self.get('year'))
@ -1708,6 +1710,7 @@ for key in settings.CONFIG['itemKeys']:
if key.get('sortType') == 'person':
Item.person_keys.append(key['id'])
@python_2_unicode_compatible
class ItemFind(models.Model):
"""
used to find items,
@ -1722,7 +1725,7 @@ class ItemFind(models.Model):
key = models.CharField(max_length=200, db_index=True)
value = models.TextField(blank=True, db_index=settings.DB_GIN_TRGM)
def __unicode__(self):
def __str__(self):
return u"%s=%s" % (self.key, self.value)
'''
ItemSort
@ -1749,6 +1752,7 @@ for key in list(filter(lambda k: k.get('sort', False) or k['type'] in ('integer'
ItemSort = type('ItemSort', (models.Model,), attrs)
ItemSort.fields = [f.name for f in ItemSort._meta.fields]
@python_2_unicode_compatible
class Access(models.Model):
class Meta:
unique_together = ("item", "user")
@ -1766,11 +1770,12 @@ class Access(models.Model):
timesaccessed = Access.objects.filter(item=self.item).aggregate(Sum('accessed'))['accessed__sum']
ItemSort.objects.filter(item=self.item).update(timesaccessed=timesaccessed, accessed=self.access)
def __unicode__(self):
def __str__(self):
if self.user:
return u"%s/%s/%s" % (self.user, self.item, self.access)
return u"%s/%s" % (self.item, self.access)
@python_2_unicode_compatible
class Facet(models.Model):
'''
used for keys that can have multiple values like people, languages etc.
@ -1786,7 +1791,7 @@ class Facet(models.Model):
value = models.CharField(max_length=1000, db_index=True)
sortvalue = models.CharField(max_length=1000, db_index=True)
def __unicode__(self):
def __str__(self):
return u"%s=%s" % (self.key, self.value)
def save(self, *args, **kwargs):

View file

@ -11,6 +11,7 @@ from django.db import models
from django.db.models import Max
from django.contrib.auth.models import User
from django.conf import settings
from django.utils.encoding import python_2_unicode_compatible
import ox
from oxdjango.fields import DictField, TupleField
@ -25,6 +26,7 @@ def get_icon_path(f, x): return get_path(f, 'icon.jpg')
def get_listview(): return settings.CONFIG['user']['ui']['listView']
def get_listsort(): return tuple(settings.CONFIG['user']['ui']['listSort'])
@python_2_unicode_compatible
class List(models.Model):
class Meta:
@ -101,7 +103,7 @@ class List(models.Model):
if items:
ListItem.objects.all().filter(item__public_id__in=items, list=self).delete()
def __unicode__(self):
def __str__(self):
return self.get_id()
def get_id(self):
@ -287,6 +289,7 @@ class List(models.Model):
path = source
return path
@python_2_unicode_compatible
class ListItem(models.Model):
created = models.DateTimeField(auto_now_add=True)
modified = models.DateTimeField(auto_now=True)
@ -294,10 +297,11 @@ class ListItem(models.Model):
index = models.IntegerField(default=0)
item = models.ForeignKey('item.Item')
def __unicode__(self):
def __str__(self):
return u'%s in %s' % (self.item, self.list)
@python_2_unicode_compatible
class Position(models.Model):
class Meta:
@ -308,6 +312,6 @@ class Position(models.Model):
section = models.CharField(max_length=255)
position = models.IntegerField(default=0)
def __unicode__(self):
def __str__(self):
return u'%s/%s/%s' % (self.section, self.position, self.list)

View file

@ -4,10 +4,12 @@ from __future__ import division, print_function, absolute_import
from django.db import models
from django.contrib.auth.models import User
from django.utils.encoding import python_2_unicode_compatible
import ox
from . import managers
@python_2_unicode_compatible
class Log(models.Model):
created = models.DateTimeField(auto_now_add=True, db_index=True)
modified = models.DateTimeField(auto_now=True)
@ -18,7 +20,7 @@ class Log(models.Model):
objects = managers.LogManager()
def __unicode__(self):
def __str__(self):
return u"%s" % self.id
def json(self, keys=None):

View file

@ -3,11 +3,13 @@
from __future__ import division, print_function, absolute_import
from django.db import models
from django.utils.encoding import python_2_unicode_compatible
import ox
from . import managers
@python_2_unicode_compatible
class News(models.Model):
objects = managers.NewsManager()
@ -40,6 +42,6 @@ class News(models.Model):
del j[key]
return j
def __unicode__(self):
def __str__(self):
return u"%s/%s" % (self.date, self.title)

View file

@ -5,6 +5,7 @@ from __future__ import division, print_function, absolute_import
import unicodedata
from django.db import models
from django.utils.encoding import python_2_unicode_compatible
from oxdjango import fields
import ox
@ -27,6 +28,7 @@ def get_name_sort(name, sortname=None):
sortname = u''
return sortname
@python_2_unicode_compatible
class Person(models.Model):
name = models.CharField(max_length=200, unique=True)
sortname = models.CharField(max_length=200)
@ -42,7 +44,7 @@ class Person(models.Model):
objects = managers.PersonManager()
def __unicode__(self):
def __str__(self):
return self.name
def save(self, *args, **kwargs):

View file

@ -4,6 +4,7 @@ from __future__ import division, print_function, absolute_import
from django.db import models, transaction
from django.contrib.auth.models import User
from django.utils.encoding import python_2_unicode_compatible
import ox
from oxdjango import fields
@ -13,6 +14,7 @@ from item.models import Item
from . import managers
@python_2_unicode_compatible
class Place(models.Model):
'''
Places are named locations, they should have geographical information attached to them.
@ -52,7 +54,7 @@ class Place(models.Model):
class Meta:
ordering = ('name_sort', )
def __unicode__(self):
def __str__(self):
return self.name
@classmethod

View file

@ -3,6 +3,7 @@
from __future__ import division, print_function, absolute_import
from django.db import models
from django.utils.encoding import python_2_unicode_compatible
from item.models import ItemSort
@ -15,6 +16,7 @@ def parse_hash(value):
def format_hash(value):
return hex(value + 9223372036854775808)[2:-1].upper()
@python_2_unicode_compatible
class Sequence(models.Model):
class Meta:
unique_together = ("sort", "start", "end", "mode")
@ -41,7 +43,7 @@ class Sequence(models.Model):
def public_id(self):
return u"%s/%0.03f-%0.03f" % (self.sort.item.public_id, float(self.start), float(self.end))
def __unicode__(self):
def __str__(self):
return self.public_id
def json(self, keys=None, user=None):

View file

@ -11,6 +11,7 @@ from django.contrib.auth.models import User
from django.conf import settings
from django.db import models
from django.db.models import Q
from django.utils.encoding import python_2_unicode_compatible
import celery.task.control
import kombu.five
import ox
@ -40,6 +41,7 @@ def get_tasks(username):
tasks.append(task.json())
return tasks
@python_2_unicode_compatible
class Task(models.Model):
DONE = ['finished', 'failed', 'canceled']
@ -53,7 +55,7 @@ class Task(models.Model):
item = models.ForeignKey("item.Item", related_name='tasks')
user = models.ForeignKey(User, related_name='tasks', null=True)
def __unicode__(self):
def __str__(self):
return "%s [%s]" % (self.item.public_id, self.status)
@property

View file

@ -13,6 +13,7 @@ from django.db.models import Max
from django.contrib.auth.models import User
from django.conf import settings
from django.db.models.signals import pre_delete
from django.utils.encoding import python_2_unicode_compatible
import ox
from oxdjango.fields import TupleField
@ -25,6 +26,7 @@ from . import managers
def get_path(i, x): return i.path(x)
def get_icon_path(i, x): return get_path(i, 'icon.jpg')
@python_2_unicode_compatible
class Text(models.Model):
class Meta:
@ -55,7 +57,7 @@ class Text(models.Model):
self.rightslevel = min(self.rightslevel, len(settings.CONFIG['textRightsLevels']) - 1)
super(Text, self).save(*args, **kwargs)
def __unicode__(self):
def __str__(self):
return self.get_id()
@classmethod
@ -302,6 +304,7 @@ def delete_file(sender, **kwargs):
t.file.delete(save=False)
pre_delete.connect(delete_file, sender=Text)
@python_2_unicode_compatible
class Position(models.Model):
class Meta:
@ -312,6 +315,6 @@ class Position(models.Model):
section = models.CharField(max_length=255)
position = models.IntegerField(default=0)
def __unicode__(self):
def __str__(self):
return u'%s/%s/%s' % (self.section, self.position, self.text)

View file

@ -5,6 +5,7 @@ from __future__ import division, print_function, absolute_import
import unicodedata
from django.db import models
from django.utils.encoding import python_2_unicode_compatible
import ox
@ -25,6 +26,7 @@ def get_title_sort(title):
sorttitle = u''
return sorttitle
@python_2_unicode_compatible
class Title(models.Model):
title = models.CharField(max_length=1000, unique=True)
sorttitle = models.CharField(max_length=1000)
@ -35,7 +37,7 @@ class Title(models.Model):
objects = managers.TitleManager()
def __unicode__(self):
def __str__(self):
return self.title
def save(self, *args, **kwargs):

View file

@ -8,10 +8,12 @@ from random import randint
from django.db import models
from django.db.models import Max
from django.conf import settings
from django.utils.encoding import python_2_unicode_compatible
from item.models import Item
@python_2_unicode_compatible
class Channel(models.Model):
created = models.DateTimeField(auto_now_add=True)
modified = models.DateTimeField(auto_now=True)
@ -20,7 +22,7 @@ class Channel(models.Model):
list = models.OneToOneField('itemlist.List', related_name='channel', null=True, blank=True)
#list = models.ForeignKey('itemlist.List', related_name='channel', null=True, unique=True, blank=True)
def __unicode__(self):
def __str__(self):
return u"%s %s" % (self.list or 'All', self.run)
def update_program(self, now=None):
@ -72,6 +74,7 @@ class Channel(models.Model):
else:
return program.json(user, now)
@python_2_unicode_compatible
class Program(models.Model):
created = models.DateTimeField(auto_now_add=True)
modified = models.DateTimeField(auto_now=True)
@ -81,7 +84,7 @@ class Program(models.Model):
item = models.ForeignKey('item.Item', related_name='program')
channel = models.ForeignKey(Channel, related_name='program')
def __unicode__(self):
def __str__(self):
return u"%s %s" % (self.item, self.start)
def json(self, user, current=False):

View file

@ -1,32 +1,37 @@
from django.db import models
from django.utils.encoding import python_2_unicode_compatible
@python_2_unicode_compatible
class IDAlias(models.Model):
old = models.CharField(max_length=255, unique=True)
new = models.CharField(max_length=255)
def __unicode__(self):
def __str__(self):
return u"%s=%s" % (self.old, self.new)
@python_2_unicode_compatible
class LayerAlias(models.Model):
old = models.CharField(max_length=255, unique=True)
new = models.CharField(max_length=255)
def __unicode__(self):
def __str__(self):
return u"%s=%s" % (self.old, self.new)
@python_2_unicode_compatible
class ListAlias(models.Model):
old = models.CharField(max_length=255, unique=True)
new = models.CharField(max_length=255)
def __unicode__(self):
def __str__(self):
return u"%s=%s" % (self.old, self.new)
@python_2_unicode_compatible
class Alias(models.Model):
url = models.CharField(max_length=255, unique=True)
target = models.CharField(max_length=255)
def __unicode__(self):
def __str__(self):
return u"%s=%s" % (self.url, self.target)

View file

@ -10,6 +10,7 @@ from django.db import models
from django.db.models import Max
from django.conf import settings
from django.contrib.gis.geoip2 import GeoIP2
from django.utils.encoding import python_2_unicode_compatible
import ox
from oxdjango.fields import DictField
@ -24,6 +25,7 @@ from . import managers
from . import tasks
@python_2_unicode_compatible
class SessionData(models.Model):
session_key = models.CharField(max_length=40, primary_key=True)
user = models.OneToOneField(User, null=True, blank=True, related_name='data')
@ -51,7 +53,7 @@ class SessionData(models.Model):
groupssort = models.CharField(default=None, blank=True, null=True, max_length=255)
def __unicode__(self):
def __str__(self):
return u"%s" % self.session_key
def parse_useragent(self):
@ -184,6 +186,7 @@ class SessionData(models.Model):
del j[key]
return j
@python_2_unicode_compatible
class UserProfile(models.Model):
reset_code = models.CharField(max_length=255, blank=True, null=True, unique=True)
user = models.OneToOneField(User, related_name='profile')
@ -196,7 +199,7 @@ class UserProfile(models.Model):
notes = models.TextField(default='')
def __unicode__(self):
def __str__(self):
return self.user.username
def get_ui(self):