cms.management.commands.publisher_publish: 30 total statements, 0.0% covered

Generated: Wed 2013-03-13 10:33 CET

Source file: /media/Envs/Envs/filer-gallery/lib/python2.7/site-packages/cms/management/commands/publisher_publish.py

Stats: 0 executed, 24 missed, 6 excluded, 17 ignored

  1. # -*- coding: utf-8 -*-
  2. from __future__ import absolute_import
  3. from django.conf import settings
  4. from django.core.management.base import NoArgsCommand, CommandError
  5. class Command(NoArgsCommand):
  6. def handle_noargs(self, **options):
  7. """Create published public version of all published drafts. Useful,
  8. when CMS_MODERATOR gets turned on after some time.
  9. """
  10. if not getattr(settings, 'CMS_MODERATOR', False):
  11. raise CommandError("This command may be used only with settings.CMS_MODERATOR")
  12. self.publish_pages()
  13. def publish_pages(self):
  14. from django.contrib.auth.models import User
  15. from cms.models import Page
  16. from cms.utils.permissions import set_current_user
  17. # thread locals middleware needs to know, who are we - login as a first
  18. # super user
  19. try:
  20. user = User.objects.filter(is_active=True, is_staff=True, is_superuser=True)[0]
  21. except IndexError:
  22. raise CommandError("No super user found, create one using `manage.py createsuperuser`.")
  23. set_current_user(user) # set him as current user
  24. qs = Page.objects.drafts().filter(published=True)
  25. pages_total, pages_published = qs.count(), 0
  26. print "\nPublishing public drafts....\n"
  27. for i, page in enumerate(qs):
  28. m = " "
  29. if page.publish():
  30. pages_published += 1
  31. m = "*"
  32. print "%d.\t%s %s [%d]" % (i + 1, m, unicode(page), page.id)
  33. print "\n"
  34. print "=" * 40
  35. print "Total: ", pages_total
  36. print "Published:", pages_published