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') verbose_name=_('Signature file')
) )
# Don't inherit the SignatureBaseModel manager
objects = models.Manager()
class Meta: class Meta:
verbose_name = _('Document version detached signature') verbose_name = _('Document version detached signature')
verbose_name_plural = _('Document version detached signatures') verbose_name_plural = _('Document version detached signatures')

View File

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