annotate oembed/models.py @ 693:ad69236e8501

For issue #52, update many 3rd party Javascript libraries. Updated to jquery 1.10.2, jquery ui 1.10.3. This broke a lot of stuff. - Found a newer version of the jquery cycle all plugin (3.0.3). - Updated JPlayer to 2.4.0. - Updated to MarkItUp 1.1.14. This also required me to add multiline attributes set to true on various buttons in the markdown set. - As per a stackoverflow post, added some code to get multiline titles in a jQuery UI dialog. They removed that functionality but allow you to put it back. Tweaked the MarkItUp preview CSS to show blockquotes in italic. Did not update TinyMCE at this time. I'm not using the JQuery version and this version appears to work ok for now. What I should do is make a repo for MarkItUp and do a vendor branch thing so I don't have to futz around diffing directories to figure out if I'll lose changes when I update.
author Brian Neal <bgneal@gmail.com>
date Wed, 04 Sep 2013 19:55:20 -0500
parents ee87ea74d46b
children d3f6e9cb1f39
rev   line source
bgneal@285 1 """
bgneal@285 2 Models for the oembed application.
bgneal@285 3 """
bgneal@285 4 import datetime
bgneal@285 5
bgneal@285 6 from django.db import models
bgneal@285 7
bgneal@285 8
bgneal@285 9 class Provider(models.Model):
bgneal@285 10 """
bgneal@285 11 This model described an oEmbed provider.
bgneal@285 12 """
bgneal@285 13 JSON, XML = range(2)
bgneal@285 14 FORMAT_CHOICES = (
bgneal@285 15 (JSON, "json"),
bgneal@285 16 (XML, "xml"),
bgneal@285 17 )
bgneal@285 18
bgneal@285 19 name = models.CharField(max_length=128)
bgneal@572 20 api_endpoint = models.URLField(max_length=255, verbose_name='API endpoint')
bgneal@285 21 url_regex = models.CharField(max_length=255, verbose_name='URL regex')
bgneal@285 22 format = models.IntegerField(choices=FORMAT_CHOICES)
bgneal@285 23
bgneal@285 24 def __unicode__(self):
bgneal@285 25 return self.name
bgneal@285 26
bgneal@285 27
bgneal@285 28 class Oembed(models.Model):
bgneal@285 29 """
bgneal@285 30 This model represents stored embedded content retrieved from an oEmbed
bgneal@285 31 provider.
bgneal@285 32 """
bgneal@285 33 PHOTO, VIDEO, LINK, RICH = range(4)
bgneal@285 34 MEDIA_TYPE_CHOICES = (
bgneal@285 35 (PHOTO, "photo"),
bgneal@285 36 (VIDEO, "video"),
bgneal@285 37 (LINK, "link"),
bgneal@285 38 (RICH, "rich"),
bgneal@285 39 )
bgneal@285 40
bgneal@572 41 url = models.URLField(max_length=255, db_index=True)
bgneal@285 42 type = models.IntegerField(choices=MEDIA_TYPE_CHOICES)
bgneal@285 43 title = models.CharField(max_length=255, blank=True, default='')
bgneal@285 44 width = models.IntegerField()
bgneal@285 45 height = models.IntegerField()
bgneal@285 46 html = models.TextField()
bgneal@285 47 date_added = models.DateTimeField()
bgneal@285 48
bgneal@285 49 def __unicode__(self):
bgneal@285 50 return self.title or self.url
bgneal@285 51
bgneal@285 52 def save(self, *args, **kwargs):
bgneal@285 53 if not self.pk:
bgneal@285 54 self.date_added = datetime.datetime.now()
bgneal@285 55
bgneal@285 56 super(Oembed, self).save(*args, **kwargs)
bgneal@285 57