def upload_single_file(self, file_object, filename=None, use_file_name=False, document_type=None, metadata_dict_list=None, user=None, document=None, new_version_data=None): if not document: document = Document() if document_type: document.document_type = document_type document.save() if metadata_dict_list: save_metadata_list(metadata_dict_list, document, create=True) warnings = update_indexes(document) if user: document.add_as_recent_document_for_user(user) create_history(HISTORY_DOCUMENT_CREATED, document, {'user': user}) else: create_history(HISTORY_DOCUMENT_CREATED, document) else: if use_file_name: filename = None else: filename = filename if filename else document.latest_version.filename if not new_version_data: new_version_data = {} new_version = document.new_version(file=file_object, **new_version_data) if filename: new_version.filename = filename new_version.save() transformations, errors = self.get_transformation_list() new_version.apply_default_transformations(transformations)
def upload_single_file(self, file_object, filename=None, use_file_name=False, document_type=None, metadata_dict_list=None, user=None, document=None, new_version_data=None): new_document = not document if not document: document = Document() if document_type: document.document_type = document_type document.save() apply_default_acls(document, user) if user: document.add_as_recent_document_for_user(user) create_history(HISTORY_DOCUMENT_CREATED, document, {'user': user}) else: create_history(HISTORY_DOCUMENT_CREATED, document) else: if use_file_name: filename = None else: filename = filename if filename else document.latest_version.filename if not new_version_data: new_version_data = {} try: new_version = document.new_version(file=file_object, user=user, **new_version_data) except Exception: # Don't leave the database in a broken state # document.delete() transaction.rollback() raise if filename: document.rename(filename) transformations, errors = self.get_transformation_list() new_version.apply_default_transformations(transformations) #TODO: new HISTORY for version updates if metadata_dict_list and new_document: # Only do for new documents save_metadata_list(metadata_dict_list, document, create=True) warnings = update_indexes(document) return document
def save(self, *args, **kwargs): if not self.pk: self.checkout_datetime = datetime.datetime.now() result = super(DocumentCheckout, self).save(*args, **kwargs) create_history( HISTORY_DOCUMENT_CHECKED_OUT, source_object=self.document, data={"user": self.user_object, "document": self.document}, ) return result
def save(self, *args, **kwargs): if not self.pk: self.checkout_datetime = datetime.datetime.now() result = super(DocumentCheckout, self).save(*args, **kwargs) create_history(HISTORY_DOCUMENT_CHECKED_OUT, source_object=self.document, data={ 'user': self.user_object, 'document': self.document }) return result
def upload_single_file(self, file_object, filename=None, use_file_name=False, document_type=None, metadata_dict_list=None, user=None, document=None, new_version_data=None, description=None): new_document = not document if not document: document = Document() if document_type: document.document_type = document_type if description: document.description = description document.save() apply_default_acls(document, user) if user: document.add_as_recent_document_for_user(user) create_history(HISTORY_DOCUMENT_CREATED, document, {'user': user}) else: create_history(HISTORY_DOCUMENT_CREATED, document) else: if use_file_name: filename = None else: filename = filename if filename else document.latest_version.filename if description: document.description = description document.save() if not new_version_data: new_version_data = {} new_version = document.new_version(file=file_object, user=user, **new_version_data) if filename: document.rename(filename) transformations, errors = self.get_transformation_list() new_version.apply_default_transformations(transformations) # TODO: new HISTORY for version updates if metadata_dict_list and new_document: # Only do for new documents save_metadata_list(metadata_dict_list, document, create=True) warnings = update_indexes(document)
def document_edit(request, document_id): check_permissions(request.user, [PERMISSION_DOCUMENT_PROPERTIES_EDIT]) document = get_object_or_404(Document, pk=document_id) if request.method == 'POST': old_document = copy.copy(document) form = DocumentForm_edit(request.POST, instance=document) if form.is_valid(): warnings = delete_indexes(document) if request.user.is_staff or request.user.is_superuser: for warning in warnings: messages.warning(request, warning) document.file_filename = form.cleaned_data['new_filename'] document.description = form.cleaned_data['description'] if 'document_type_available_filenames' in form.cleaned_data: if form.cleaned_data['document_type_available_filenames']: document.file_filename = form.cleaned_data['document_type_available_filenames'].filename document.save() create_history(HISTORY_DOCUMENT_EDITED, document, {'user': request.user, 'diff': return_diff(old_document, document, ['file_filename', 'description'])}) RecentDocument.objects.add_document_for_user(request.user, document) messages.success(request, _(u'Document "%s" edited successfully.') % document) warnings = update_indexes(document) if request.user.is_staff or request.user.is_superuser: for warning in warnings: messages.warning(request, warning) return HttpResponseRedirect(document.get_absolute_url()) else: form = DocumentForm_edit(instance=document, initial={ 'new_filename': document.file_filename}) return render_to_response('generic_form.html', { 'form': form, 'object': document, }, context_instance=RequestContext(request))
def upload_single_file(self, file_object, filename=None, document_type=None, metadata_dict_list=None, user=None): transformations, errors = self.get_transformation_list() document = Document(file=file_object) if document_type: document.document_type = document_type document.save() if filename: document.file_filename = filename document.save() document.apply_default_transformations(transformations) if metadata_dict_list: save_metadata_list(metadata_dict_list, document, create=True) warnings = update_indexes(document) if user: document.add_as_recent_document_for_user(user) create_history(HISTORY_DOCUMENT_CREATED, document, {'user': user}) else: create_history(HISTORY_DOCUMENT_CREATED, document)
def check_in_document(self, document, user=None): try: document_checkout = self.model.objects.get(document=document) except self.model.DoesNotExist: raise DocumentNotCheckedOut else: if user: if self.document_checkout_info(document).user_object != user: create_history(HISTORY_DOCUMENT_FORCEFUL_CHECK_IN, source_object=document, data={ 'user': user, 'document': document }) else: create_history(HISTORY_DOCUMENT_CHECKED_IN, source_object=document, data={ 'user': user, 'document': document }) else: create_history(HISTORY_DOCUMENT_AUTO_CHECKED_IN, source_object=document, data={'document': document}) document_checkout.delete()
def check_in_document(self, document, user=None): try: document_checkout = self.model.objects.get(document=document) except self.model.DoesNotExist: raise DocumentNotCheckedOut else: if user: if self.document_checkout_info(document).user_object != user: create_history(HISTORY_DOCUMENT_FORCEFUL_CHECK_IN, source_object=document, data={'user': user, 'document': document}) else: create_history(HISTORY_DOCUMENT_CHECKED_IN, source_object=document, data={'user': user, 'document': document}) else: create_history(HISTORY_DOCUMENT_AUTO_CHECKED_IN, source_object=document, data={'document': document}) document_checkout.delete()