train spam on state change to 'closed_spam'
This commit is contained in:
parent
a6a8b0defe
commit
5a6349c5d3
3 changed files with 36 additions and 3 deletions
|
@ -4,7 +4,6 @@ from django.db import migrations, models
|
|||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('mail', '0005_alter_eventaddress_event'),
|
||||
]
|
||||
|
@ -13,8 +12,9 @@ class Migration(migrations.Migration):
|
|||
Email = apps.get_model('mail', 'Email')
|
||||
for email in Email.objects.all():
|
||||
raw_content = email.raw
|
||||
email.raw_file = ContentFile(raw_content)
|
||||
email.raw = None
|
||||
path = "mail_{}".format(email.id)
|
||||
if len(raw_content):
|
||||
email.raw_file.save(path, ContentFile(raw_content))
|
||||
email.save()
|
||||
|
||||
operations = [
|
||||
|
|
31
core/tickets/migrations/0011_train_old_spam.py
Normal file
31
core/tickets/migrations/0011_train_old_spam.py
Normal file
|
@ -0,0 +1,31 @@
|
|||
# Generated by Django 4.2.7 on 2024-06-23 02:17
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
('mail', '0006_email_raw_file'),
|
||||
('tickets', '0010_issuethread_event_itemrelation_and_more'),
|
||||
]
|
||||
|
||||
def train_old_mails(apps, schema_editor):
|
||||
from tickets.models import IssueThread
|
||||
for t in IssueThread.objects.all():
|
||||
try:
|
||||
state = t.state
|
||||
i = 0
|
||||
for e in t.emails.all():
|
||||
if e.raw_file:
|
||||
if state == 'closed_spam' and i == 0:
|
||||
e.train_spam()
|
||||
else:
|
||||
e.train_ham()
|
||||
i += 1
|
||||
except:
|
||||
pass
|
||||
|
||||
operations = [
|
||||
migrations.RunPython(train_old_mails),
|
||||
]
|
|
@ -60,6 +60,8 @@ class IssueThread(SoftDeleteModel):
|
|||
if self.state == value:
|
||||
return
|
||||
self.state_changes.create(state=value)
|
||||
if value == 'closed_spam' and self.emails.exists():
|
||||
self.emails.first().train_spam()
|
||||
|
||||
@property
|
||||
def assigned_to(self):
|
||||
|
|
Loading…
Reference in a new issue