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)
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)
def _send_update_signal(self): posts_changed.send(sender=self.__class__, instance=self)