Add IMAP document souce support, merge with existing POP3 email support, make POP3MailLog generic

This commit is contained in:
Roberto Rosario
2012-03-14 01:25:49 -04:00
parent a234c76326
commit 19b3553705
13 changed files with 795 additions and 71 deletions
+14 -5
View File
@@ -5,7 +5,7 @@ from ast import literal_eval
from django.db import models
from django.contrib.contenttypes.models import ContentType
from .conf.settings import POP3_EMAIL_LOG_SIZE
from .conf.settings import LOG_SIZE
class SourceTransformationManager(models.Manager):
@@ -30,10 +30,19 @@ class SourceTransformationManager(models.Manager):
return transformations, warnings
class POP3EmailLogManager(models.Manager):
def save_status(self, pop3_email, status):
new_recent = self.model(pop3_email=pop3_email, status=status)
class SourceLogManager(models.Manager):
def save_status(self, source, status):
new_recent = self.model(source=source, status=status)
new_recent.save()
to_delete = self.model.objects.filter(pop3_email=pop3_email).order_by('-creation_datetime')[POP3_EMAIL_LOG_SIZE:]
content_type = ContentType.objects.get_for_model(source)
to_delete = self.model.objects.filter(content_type=content_type, object_id=source.pk).order_by('-creation_datetime')[LOG_SIZE:]
for recent_to_delete in to_delete:
recent_to_delete.delete()
def get_for_source(self, source):
content_type = ContentType.objects.get_for_model(source)
return self.model.objects.filter(content_type=content_type, object_id=source.pk).order_by('-creation_datetime')
def get_latest_for(self, source):
content_type = ContentType.objects.get_for_model(source)
return self.model.objects.filter(content_type=content_type, object_id=source.pk).latest().creation_datetime