def handle(self, *args, **options):
     pop_news_idlist  = redis_adapter.zrevrange(RedisKeys.pop_news_by_city % '2',0,2)
     if len(pop_news_idlist) > 0:
         for id in pop_news_idlist:
             self.stdout.write(id)
             redis_adapter.zrem(RedisKeys.pop_news_by_city % '2',id)
     self.stdout.write("done")
Пример #2
0
    def form_valid(self, form):
        news = form.save()

        photos_formset = NewsPhotoImageSet(self.request.POST,
                                           self.request.FILES,
                                           instance=news)
        is_valid = all([photos_formset.is_valid()])
        if is_valid:
            photos_formset.save()
            #save preview to redis
            photos = news.news_photos.all()
            preview = NewsPreview(news.id,news.title, photos[0].thumbnail.url if photos.count() > 0 else '', news.slug,
                                  news.event_date, news.deadline_date,news.description,
                                  photos[0].preview.url if photos.count() > 0 else '')
            preview_serialized = pickle.dumps(preview)
            redis_adapter.set(RedisKeys.preview_news_key % news.id, preview_serialized)

            if not news.is_displayed or news.is_archive:
                redis_adapter.zrem(RedisKeys.pop_news, news.id)
            elif news.date_added + timedelta(days=settings.TOP_NEWS_LIVETIME) > utc.localize(datetime.today()):
                redis_adapter.zadd(RedisKeys.pop_news, news.id, news.views_count)
            return HttpResponseRedirect(self.get_success_url())

        messages.error(self.request,
                       _("Your submitted data was not valid - please "
                         "correct the below errors"))


        news.delete()
        ctx = self.get_context_data(form=form, photo_formset=photos_formset)
        return self.render_to_response(ctx)
Пример #3
0
 def post(self, request, *args, **kwargs):
     news_action = request.POST.get('news_action', '').lower()
     news_id = request.POST.get('news_id', '')
     if news_action and news_id:
         if news_action == u'delete':
             obj = self.model.objects.get(pk=news_id)
             if obj:
                 obj.delete()
             redis_adapter.zrem(RedisKeys.pop_news, news_id)
             redis_adapter.delete(RedisKeys.preview_news_key % news_id)
     return self.get(request, *args, **kwargs)
Пример #4
0
 def setAnalitic(self):
     city = self.object.city
     if self.object:
         pk = self.object.id
         if settings.UNIC_TMP_USER_ID in self.request.COOKIES:
             unicId = self.request.COOKIES[settings.UNIC_TMP_USER_ID]
             redis_adapter.sadd(RedisKeys.news_views % pk, unicId)
         views_count = redis_adapter.scard(RedisKeys.news_views % pk)
         if self.object.is_displayed and not self.object.is_archive and self.object.date_added + timedelta(days=settings.TOP_NEWS_LIVETIME) > utc.localize(datetime.today()):
             redis_adapter.zadd(RedisKeys.pop_news, pk, views_count)
             redis_adapter.zadd(RedisKeys.pop_news_by_group % self.object.type, pk, views_count)
             redis_adapter.zadd(RedisKeys.pop_news_by_city % city, pk, views_count)
         else:
             redis_adapter.zrem(RedisKeys.pop_news, pk)
             redis_adapter.zrem(RedisKeys.pop_news_by_group % self.object.type, pk)
             redis_adapter.zrem(RedisKeys.pop_news_by_city % city, pk)
         return views_count
     return 0;