Silence deprecation warning about default manager for child models. Reorganize model according to Mayan's best practices.

Signed-off-by: Michael Price <loneviking72@gmail.com>
This commit is contained in:
Michael Price
2018-03-02 02:39:10 -04:00
committed by Roberto Rosario
parent fd9a7217e9
commit 984e8a5b2c
2 changed files with 54 additions and 33 deletions

View File

@@ -132,6 +132,9 @@ class DetachedSignature(SignatureBaseModel):
verbose_name=_('Signature file')
)
# Don't inherit the SignatureBaseModel manager
objects = models.Manager()
class Meta:
verbose_name = _('Document version detached signature')
verbose_name_plural = _('Document version detached signatures')

View File

@@ -64,6 +64,11 @@ class Source(models.Model):
objects = InheritanceManager()
class Meta:
ordering = ('label',)
verbose_name = _('Source')
verbose_name_plural = _('Sources')
@classmethod
def class_fullname(cls):
return force_text(dict(SOURCE_CHOICES).get(cls.source_type))
@@ -169,11 +174,6 @@ class Source(models.Model):
pass
# TODO: Should raise NotImplementedError?
class Meta:
ordering = ('label',)
verbose_name = _('Source')
verbose_name_plural = _('Sources')
class InteractiveSource(Source):
objects = InheritanceManager()
@@ -223,6 +223,8 @@ class SaneScanner(InteractiveSource):
), max_length=16, verbose_name=_('ADF mode')
)
objects = models.Manager()
class Meta:
verbose_name = _('SANE Scanner')
verbose_name_plural = _('SANE Scanners')
@@ -329,6 +331,12 @@ class StagingFolderSource(InteractiveSource):
verbose_name=_('Delete after upload')
)
objects = models.Manager()
class Meta:
verbose_name = _('Staging folder')
verbose_name_plural = _('Staging folders')
def get_preview_size(self):
dimensions = []
dimensions.append(force_text(self.preview_width))
@@ -374,10 +382,6 @@ class StagingFolderSource(InteractiveSource):
_('Error deleting staging file; %s') % exception
)
class Meta:
verbose_name = _('Staging folder')
verbose_name_plural = _('Staging folders')
class WebFormSource(InteractiveSource):
"""
@@ -392,6 +396,12 @@ class WebFormSource(InteractiveSource):
is_interactive = True
source_type = SOURCE_CHOICE_WEB_FORM
objects = models.Manager()
class Meta:
verbose_name = _('Web form')
verbose_name_plural = _('Web forms')
# TODO: unify uncompress as an InteractiveSource field
uncompress = models.CharField(
choices=SOURCE_INTERACTIVE_UNCOMPRESS_CHOICES,
@@ -403,14 +413,12 @@ class WebFormSource(InteractiveSource):
def get_upload_file_object(self, form_data):
return SourceUploadedFile(source=self, file=form_data['file'])
class Meta:
verbose_name = _('Web form')
verbose_name_plural = _('Web forms')
class OutOfProcessSource(Source):
is_interactive = False
objects = models.Manager()
class Meta:
verbose_name = _('Out of process')
verbose_name_plural = _('Out of process')
@@ -435,6 +443,12 @@ class IntervalBaseModel(OutOfProcessSource):
max_length=1, verbose_name=_('Uncompress')
)
objects = models.Manager()
class Meta:
verbose_name = _('Interval source')
verbose_name_plural = _('Interval sources')
def _get_periodic_task_name(self, pk=None):
return 'check_interval_source-%i' % (pk or self.pk)
@@ -480,10 +494,6 @@ class IntervalBaseModel(OutOfProcessSource):
super(IntervalBaseModel, self).delete(*args, **kwargs)
self._delete_periodic_task(pk)
class Meta:
verbose_name = _('Interval source')
verbose_name_plural = _('Interval sources')
class EmailBaseModel(IntervalBaseModel):
"""
@@ -532,6 +542,12 @@ class EmailBaseModel(IntervalBaseModel):
), verbose_name=_('Store email body')
)
objects = models.Manager()
class Meta:
verbose_name = _('Email source')
verbose_name_plural = _('Email sources')
def clean(self):
if self.subject_metadata_type:
if self.subject_metadata_type.pk not in self.document_type.metadata.values_list('metadata_type', flat=True):
@@ -640,10 +656,6 @@ class EmailBaseModel(IntervalBaseModel):
metadata_dictionary=metadata_dictionary
)
class Meta:
verbose_name = _('Email source')
verbose_name_plural = _('Email sources')
class POP3Email(EmailBaseModel):
source_type = SOURCE_CHOICE_EMAIL_POP3
@@ -652,6 +664,12 @@ class POP3Email(EmailBaseModel):
default=DEFAULT_POP3_TIMEOUT, verbose_name=_('Timeout')
)
objects = models.Manager()
class Meta:
verbose_name = _('POP email')
verbose_name_plural = _('POP email')
def check_source(self):
logger.debug('Starting POP3 email fetch')
logger.debug('host: %s', self.host)
@@ -685,10 +703,6 @@ class POP3Email(EmailBaseModel):
mailbox.quit()
class Meta:
verbose_name = _('POP email')
verbose_name_plural = _('POP email')
class IMAPEmail(EmailBaseModel):
source_type = SOURCE_CHOICE_EMAIL_IMAP
@@ -699,6 +713,12 @@ class IMAPEmail(EmailBaseModel):
max_length=64, verbose_name=_('Mailbox')
)
objects = models.Manager()
class Meta:
verbose_name = _('IMAP email')
verbose_name_plural = _('IMAP email')
# http://www.doughellmann.com/PyMOTW/imaplib/
def check_source(self):
logger.debug('Starting IMAP email fetch')
@@ -730,10 +750,6 @@ class IMAPEmail(EmailBaseModel):
mailbox.close()
mailbox.logout()
class Meta:
verbose_name = _('IMAP email')
verbose_name_plural = _('IMAP email')
class WatchFolderSource(IntervalBaseModel):
"""
@@ -753,6 +769,12 @@ class WatchFolderSource(IntervalBaseModel):
verbose_name=_('Folder path')
)
objects = models.Manager()
class Meta:
verbose_name = _('Watch folder')
verbose_name_plural = _('Watch folders')
def check_source(self):
# Force self.folder_path to unicode to avoid os.listdir returning
# str for non-latin filenames, gh-issue #163
@@ -767,10 +789,6 @@ class WatchFolderSource(IntervalBaseModel):
)
os.unlink(full_path)
class Meta:
verbose_name = _('Watch folder')
verbose_name_plural = _('Watch folders')
class SourceLog(models.Model):
source = models.ForeignKey(