diff -r 37cab1148a68 -r 62d37265fd4a src/ldtplatform/management/commands/setpublic.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/ldtplatform/management/commands/setpublic.py Fri Apr 28 13:20:39 2017 +0200 @@ -0,0 +1,52 @@ +''' +set just created medias and contents public +''' +import csv + +from django.conf import settings +from django.core.management.base import BaseCommand +from django.contrib.auth.models import Group + +from ldt.security.cache import cached_assign +from ldt.ldt_utils.models import Content, Media + + +class Command(BaseCommand): + ''' + command + ''' + + def add_arguments(self, parser): + ''' + add arguments + ''' + parser.add_argument('-p', + nargs='+', + dest='pathes', + default=None) + + def handle(self, *args, **options): + ''' + handle command + ''' + sources = [] + for path in options['pathes']: + self.stdout.write(path) + try: + csvfile = open(path, 'r') + except IOError: + self.stdout.write('file can\'t be opened') + continue + files = csv.reader(csvfile) + sources += list([content[0] for content in files]) + csvfile.close() + everyone = Group.objects.get(name=settings.PUBLIC_GROUP_NAME) + for source in sources: + media = Media.objects.get(src=source) + content = Content.objects.get(media_obj_id=media.id) + content.is_public = True + content.save() + cached_assign('view_content', everyone, content) + cached_assign('view_media', everyone, media) + + \ No newline at end of file