From e6c2628b2e6e1f8a2522868560d92e953598f54c Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Thu, 23 Oct 2014 16:57:20 -0400 Subject: [PATCH] Add document model manager to simplify and encapsulate document creation --- mayan/apps/documents/managers.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/mayan/apps/documents/managers.py b/mayan/apps/documents/managers.py index ea8e604e98..d8db4cb645 100644 --- a/mayan/apps/documents/managers.py +++ b/mayan/apps/documents/managers.py @@ -2,7 +2,7 @@ from __future__ import absolute_import from ast import literal_eval -from django.db import models +from django.db import models, transaction from .settings import RECENT_COUNT @@ -51,3 +51,12 @@ class RecentDocumentManager(models.Manager): class DocumentTypeManager(models.Manager): def get_by_natural_key(self, name): return self.get(name=name) + + +class DocumentManager(models.Manager): + @transaction.atomic + def new_document(self, file_object, document_type, label, user=None, description=None, language=None): + document = self.model(document_type=document_type, label=label, + description=description, language=language) + document.save(user=user) + return document.new_version(file=file_object, user=user)