PageRenderTime 59ms CodeModel.GetById 32ms RepoModel.GetById 1ms app.codeStats 0ms

/oppianproj/apps/oppianapp/management/__init__.py

https://github.com/oppian/oppian
Python | 86 lines | 52 code | 16 blank | 18 comment | 9 complexity | 50991b80babf3f565c7dcd6ebee24f0d MD5 | raw file
Possible License(s): BSD-3-Clause
  1. '''
  2. Created on 14 August 2009
  3. @author: steve
  4. '''
  5. from django.conf import settings
  6. print settings.INSTALLED_APPS
  7. from django.db.models import signals
  8. from django.utils.translation import ugettext_noop as _
  9. from django.contrib.contenttypes.models import ContentType
  10. from django.template.defaultfilters import slugify
  11. """
  12. Creates the default oppian data.
  13. """
  14. """
  15. Creates the default media - photos.
  16. """
  17. if "basic.media" in settings.INSTALLED_APPS:
  18. from basic.inlines import models as media
  19. from basic.media.models import Photo
  20. import os, glob
  21. def create_photo(path, leafname, verbosity):
  22. filename = '%s%s' % (path, leafname)
  23. photos = Photo.objects.filter(photo=filename)
  24. if len(photos)==0:
  25. title = leafname
  26. description = leafname
  27. photo = Photo(
  28. title=title,
  29. slug=slugify(title),
  30. photo=filename,
  31. license="http://creativecommons.org/licenses/by-nc-nd/2.0/",
  32. description=description,
  33. tags="logo, oppian")
  34. photo.save()
  35. if verbosity >= 2:
  36. print ' Adding "%s""' % filename
  37. def create_initial_media(app, created_models, verbosity, **kwargs):
  38. if verbosity >= 2:
  39. print "creating initial media:"
  40. images_dir = '%s/images' % settings.MEDIA_ROOT_LOCAL
  41. os.chdir(images_dir)
  42. # currently only get PNG and JPEG files
  43. filenames = glob.glob("*.png") + glob.glob("*.jpg")
  44. for filename in filenames:
  45. create_photo('images/', filename, verbosity)
  46. signals.post_syncdb.connect(create_initial_media, sender=media)
  47. else:
  48. print "Skipping creation of initial inline photos as inline app not found"
  49. """
  50. Creates the default Site object.
  51. """
  52. from django.contrib.sites.models import Site
  53. from django.contrib.sites import models as site_app
  54. def create_default_site(app, created_models, verbosity, **kwargs):
  55. if Site in created_models:
  56. # first check for existing site id
  57. try:
  58. site = Site.objects.get(id=settings.SITE_ID)
  59. # delete it if it exists
  60. site.delete()
  61. except:
  62. # site doesn't exist
  63. pass
  64. if verbosity >= 2:
  65. print " Site object"
  66. s = Site(id=settings.SITE_ID, domain=settings.SITE_DOMAIN, name=settings.SITE_NAME)
  67. s.save()
  68. Site.objects.clear_cache()
  69. signals.post_syncdb.connect(create_default_site, sender=site_app)