Sunday, May 13, 2012

3.2 обновление - RSS feed, Updates на главной и аудио плэер в постах

За последнюю неделю мы достаточно плотно поработали над сайтом и наконец настал момент, когда изменений накопилось на очередной (плановый?) апдейт сайта.

С RSS и апдейтами (которые news) на главной оказалось достаточно просто generic relations позволили увязать множество различных моделей в одну таблицу - Updates, куда так же записывается краткая информация (title и description) после сохранения поста (используя signals, сигналы).


class Updates(models.Model): 
    title = models.CharField(max_length=160)
    description = models.CharField(max_length=255)
    
    display = models.BooleanField(blank=True, default=False,
                                  help_text="Display this on front page")
    updated = models.DateTimeField(auto_now_add=True)
    
    content_type = models.ForeignKey(ContentType, editable=False)
    object_id = models.PositiveIntegerField(editable=False)
    content_object = generic.GenericForeignKey('content_type', 'object_id')


Для каждой модели так же определен метод -  def get_item_for_update(self) который должен сгенерировать title и description использя данные новости, эвента и т.д.

Затем уже используя эту таблицу формируется общий RSS фид. Так же реализовал возможность редактировать эти апдейты через интерфейс администратора, на всякий случай.

Audio-player


Встроил вот такой - http://wpaudioplayer.com/standalone/
Теперь посты в Stuff (и других разделах) можно иллюстрировать аудио-фрагментами, что позволит полноценно заняться написанием различных how-to и tutorials.

Сделано через filter тэг, который ищет (регулярным выражением) строчки вида [audio:http://someurl.com/file.mp3] и заменяет их собственно кодом плэера.


Сейчас буду накатывать.

1 comment: