diff --git a/apps/bootstrap/api.py b/apps/bootstrap/api.py deleted file mode 100644 index 382b88cb7b..0000000000 --- a/apps/bootstrap/api.py +++ /dev/null @@ -1,163 +0,0 @@ -from __future__ import absolute_import - -from django.utils.translation import ugettext_lazy as _ -from django.utils.translation import ugettext -from django.contrib.auth.models import User, Group - -#from permissions.models import Role -#from history.models import History -#from django_gpg.runtime import gpg -#from documents.models import DocumentType, DocumentTypeFilename, Document -#from folders.models import Folder -#from taggit.models import Tag -#from tags.models import TagProperties -#from metadata.models import MetadataType, MetadataSet -#from sources.models import WebForm, StagingFolder -#from document_indexing.models import Index, IndexTemplateNode -#from dynamic_search.models import RecentSearch -# TODO: clear the job queues - -bootstrap_options = {} - - -def nuke_database(): - # Delete all document types - for obj in DocumentType.objects.all(): - obj.delete() - - # Delete all documents one by one to trigger the document file delete method - # Should also get rid of document metadata - for obj in Document.objects.all(): - obj.delete() - - # Delete all metadata types - for obj in MetadataType.objects.all(): - obj.delete() - - # Delete all metadata sets - for obj in MetadataSet.objects.all(): - obj.delete() - - # Delete all indexes types, should also delete index nodes - for obj in Index.objects.all(): - obj.delete() - - # Delete all webforms sources - for obj in WebForm.objects.all(): - obj.delete() - - # Delete all staging folder sources - for obj in StagingFolder.objects.all(): - obj.delete() - - # Delete all user groups - for obj in Group.objects.all(): - obj.delete() - - # Delete all users except superadmins and staff - for obj in User.objects.all(): - if not obj.is_superuser and not obj.is_staff: - obj.delete() - - # Delete all user roles - for obj in Role.objects.all(): - obj.delete() - - # Delete all the remaining history events - for obj in History.objects.all(): - obj.delete() - - # Delete all tags - for obj in Tag.objects.all(): - obj.delete() - - # Delete any remaining tag property - for obj in TagProperties.objects.all(): - obj.delete() - - # Delete all foders - for obj in Folder.objects.all(): - obj.delete() - - # Delete all recent searches - for obj in RecentSearch.objects.all(): - obj.delete() - - # Clear the entire key ring (public and private keys) - gpg.delete_all_keys() - - -class BootstrapBase(object): - name = None - label = '' - description = '' - - def __unicode__(self): - return unicode(self.label) - - -class BootstrapSimple(BootstrapBase): - name = 'simple' - label = _(u'Simple') - description = _(u'A simple setup providing an uploaded date metadata and index plus an alphabetic index based on document filenames.') - - def execute(self): - # Create metadata types - upload_date = MetadataType.objects.create(name='upload_date', title=ugettext(u'Upload date'), default='current_date()') - - # Create a segmented date index - index = Index.objects.create(name='date_tree', title=ugettext(u'Segmented date index'), enabled=True) - template_root = index.template_root - - # Create index template - node1 = IndexTemplateNode.objects.create(parent=template_root, index=index, expression='metadata.upload_date[0:4]', enabled=True, link_documents=False) - node2 = IndexTemplateNode.objects.create(parent=node1, index=index, expression='metadata.upload_date[5:7]', enabled=True, link_documents=False) - node3 = IndexTemplateNode.objects.create(parent=node2, index=index, expression='metadata.upload_date[8:10]', enabled=True, link_documents=True) - - -class BootstrapPermit(BootstrapBase): - name = 'permits' - label = _(u'Permits') - description = _(u'A setup for handling permits and related documents.') - - def execute(self): - # Create document types - form = DocumentType.objects.create(name=ugettext(u'Form')) - DocumentTypeFilename.objects.create(document_type=form, filename=ugettext(u'Building construction form')) - DocumentTypeFilename.objects.create(document_type=form, filename=ugettext(u'Building usage form')) - - blueprint = DocumentType.objects.create(name=ugettext(u'Blueprint')) - DocumentTypeFilename.objects.create(document_type=blueprint, filename=ugettext(u'Floorplan')) - DocumentTypeFilename.objects.create(document_type=blueprint, filename=ugettext(u'Plot plan')) - - # Create metadata types - date = MetadataType.objects.create(name='date', title=ugettext(u'Date'), default='current_date()') - client = MetadataType.objects.create(name='client', title=ugettext(u'Client')) - permit = MetadataType.objects.create(name='permit', title=ugettext(u'Permit number')) - project = MetadataType.objects.create(name='project', title=ugettext(u'Project')) - user = MetadataType.objects.create(name='user', title=ugettext(u'User'), lookup='sorted([user.get_full_name() or user for user in User.objects.all() if user.is_active])') - - # Create a segmented date index - index = Index.objects.create(name='main_index', title=ugettext(u'Permit index'), enabled=True) - - # Create index template - per_permit = IndexTemplateNode.objects.create(parent=index.template_root, index=index, expression='\'%s\'' % ugettext(u'Per permit'), enabled=True, link_documents=False) - per_permit_child = IndexTemplateNode.objects.create(parent=per_permit, index=index, expression='metadata.permit', enabled=True, link_documents=True) - - per_project = IndexTemplateNode.objects.create(parent=index.template_root, index=index, expression='\'%s\'' % ugettext(u'Per project'), enabled=True, link_documents=False) - per_project_child = IndexTemplateNode.objects.create(parent=per_project, index=index, expression='metadata.project', enabled=True, link_documents=False) - per_permit = IndexTemplateNode.objects.create(parent=per_project_child, index=index, expression='\'%s\'' % ugettext(u'Per permit'), enabled=True, link_documents=False) - per_permit_child = IndexTemplateNode.objects.create(parent=per_permit, index=index, expression='metadata.permit', enabled=True, link_documents=True) - - per_date = IndexTemplateNode.objects.create(parent=index.template_root, index=index, expression='\'%s\'' % ugettext(u'Per date'), enabled=True, link_documents=False) - per_date_child = IndexTemplateNode.objects.create(parent=per_date, index=index, expression='metadata.date', enabled=True, link_documents=True) - - per_user = IndexTemplateNode.objects.create(parent=index.template_root, index=index, expression='\'%s\'' % ugettext(u'Per user'), enabled=True, link_documents=False) - per_user_child = IndexTemplateNode.objects.create(parent=per_user, index=index, expression='metadata.user', enabled=True, link_documents=True) - - per_client = IndexTemplateNode.objects.create(parent=index.template_root, index=index, expression='\'%s\'' % ugettext(u'Per client'), enabled=True, link_documents=False) - per_client_child = IndexTemplateNode.objects.create(parent=per_client, index=index, expression='metadata.client', enabled=True, link_documents=True) - - -for bootstrap in [BootstrapSimple(), BootstrapPermit()]: - bootstrap_options[bootstrap.name] = bootstrap