|
|
@@ -20,8 +20,8 @@ import logging
|
|
|
from django.core import management
|
|
|
from django.core.management.base import NoArgsCommand
|
|
|
|
|
|
-from desktop.models import Document, Document2, SAMPLE_USER_OWNERS
|
|
|
-from useradmin.models import install_sample_user
|
|
|
+from desktop.models import Directory, Document, Document2, Document2Permission, SAMPLE_USER_OWNERS
|
|
|
+from useradmin.models import get_default_user_group, install_sample_user
|
|
|
|
|
|
|
|
|
LOG = logging.getLogger(__name__)
|
|
|
@@ -31,7 +31,21 @@ class Command(NoArgsCommand):
|
|
|
def handle_noargs(self, **options):
|
|
|
|
|
|
if not Document2.objects.filter(type='search-dashboard', owner__username__in=SAMPLE_USER_OWNERS).exists():
|
|
|
- install_sample_user()
|
|
|
+ sample_user = install_sample_user()
|
|
|
|
|
|
management.call_command('loaddata', 'initial_search_examples.json', verbosity=2)
|
|
|
Document.objects.sync()
|
|
|
+
|
|
|
+ # Get or create sample user directories
|
|
|
+ home_dir = Directory.objects.get_home_directory(sample_user)
|
|
|
+ examples_dir, created = Directory.objects.get_or_create(
|
|
|
+ parent_directory=home_dir,
|
|
|
+ owner=sample_user,
|
|
|
+ name=Document2.EXAMPLES_DIR
|
|
|
+ )
|
|
|
+
|
|
|
+ Document2.objects.filter(type='search-dashboard', owner__username__in=SAMPLE_USER_OWNERS).update(parent_directory=examples_dir)
|
|
|
+
|
|
|
+ # Share with default group
|
|
|
+ examples_dir.share(sample_user, Document2Permission.READ_PERM, groups=[get_default_user_group()])
|
|
|
+ LOG.info('Successfully installed sample search dashboard')
|