Beispiel #1
0
    def publish_now(self, request, queryset):
        """
        Опубликовать посты сейчас в ручном режиме
        """

        error = 0
        for post in queryset:
            try:
                post.publish()
            except:
                error += 1
        
        self.message_user(request, "Posting have done.")
        if error > 0:
            self.message_user(request, "%s post(s) didn't published due to errors. See Error Logs" % (len(queryset) - error + 1))

        # Бот должен быть уведомлен о новых постах
        posts_changed.send(sender=self.__class__, instance=self)
Beispiel #2
0
    def save(self, force_insert=False, force_update=False, commit=True):
        """
        Сохранение формы. При включеном режиме массового импорта все записи
        добавляет в базу. Возможно редактирование только выбранного поста.
        """


        if self.cleaned_data.get('batch_import') is True:

            # Если задано время, с которого посты должны размещаться
            start_time = self.cleaned_data.get('start_time')
            if start_time is not None:
                # Найти время задержки в миинутах для данной группы
                delta = timedelta(minutes=Task.objects.get(group__gid=self.cleaned_data.get('group').gid).periodicity)
                time_to_post = start_time

            for post in self.posts:
                VkPost.objects.create(
                    group=self.cleaned_data.get('group'), 
                    link='http://vk.com/wall%s' % post,
                    cut_out_hashtags=self.cleaned_data.get('cut_out_hashtags'),
                    cut_out_links_from_message=self.cleaned_data.get('cut_out_links_from_message'),
                    cut_out_link_attachments=self.cleaned_data.get('cut_out_link_attachments'),
                    time_to_post=time_to_post if start_time is not None else None
                )
                
                # Добавить дельту ко времени размещения нового поста
                if start_time is not None:
                    time_to_post = time_to_post + delta


        # Бот должен быть уведомлен о новых постах
        posts_changed.send(sender=self.__class__, instance=self)

        if self.cleaned_data.get('link') != '':
            return super(VkPostAdminForm, self).save(commit=commit)
        else:
            return super(VkPostAdminForm, self).save(commit=False)
Beispiel #3
0
 def _send_update_signal(self):
     posts_changed.send(sender=self.__class__, instance=self)