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):
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
('mail', '0005_alter_eventaddress_event'),
|
('mail', '0005_alter_eventaddress_event'),
|
||||||
]
|
]
|
||||||
|
@ -13,8 +12,9 @@ class Migration(migrations.Migration):
|
||||||
Email = apps.get_model('mail', 'Email')
|
Email = apps.get_model('mail', 'Email')
|
||||||
for email in Email.objects.all():
|
for email in Email.objects.all():
|
||||||
raw_content = email.raw
|
raw_content = email.raw
|
||||||
email.raw_file = ContentFile(raw_content)
|
path = "mail_{}".format(email.id)
|
||||||
email.raw = None
|
if len(raw_content):
|
||||||
|
email.raw_file.save(path, ContentFile(raw_content))
|
||||||
email.save()
|
email.save()
|
||||||
|
|
||||||
operations = [
|
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:
|
if self.state == value:
|
||||||
return
|
return
|
||||||
self.state_changes.create(state=value)
|
self.state_changes.create(state=value)
|
||||||
|
if value == 'closed_spam' and self.emails.exists():
|
||||||
|
self.emails.first().train_spam()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def assigned_to(self):
|
def assigned_to(self):
|
||||||
|
|
Loading…
Reference in a new issue