fix for subscribers import

remotes/origin/stage5
Alexander Burdeiny 10 years ago
parent 9edae9ad69
commit 96f3408798
  1. 22
      emencia/django/newsletter/admin_forms.py

@ -17,6 +17,7 @@ from emencia.django.newsletter.models import (
Newsletter
)
from theme.models import Theme
from haystack.query import SearchQuerySet
class ContactSettingsForm(forms.ModelForm):
@ -145,20 +146,33 @@ class MailingListForm(forms.ModelForm):
values = cell.value.split(';')
names_to_fetch = []
pks = set()
# print(cell)
# print(field)
# for x in values:
# print(x)
# import pdb; pdb.set_trace()
for val in values:
val = val.strip()
_pk = data['cached'].get(val, None)
val_stripped = val.strip()
_pk = data['cached'].get(val_stripped, None)
if _pk is None:
names_to_fetch.append(val)
names_to_fetch.append(val_stripped)
else:
pks.add(_pk)
# print(names_to_fetch)
# print(data['model'])
if names_to_fetch:
_pks = dict(data['model'].objects.language().filter(name__in=values).values_list('name', 'pk'))
# _pks = dict([(x.name_ru, x.pk) for x in SearchQuerySet().models(data['model']).filter(name__in=values)])
sqs = SearchQuerySet().models(data['model']).filter(name_ru__in=values).load_all()
_pks = dict([(x.object.name, x.pk) for x in sqs])
# print(_pks)
data['cached'].update(_pks)
pks.update(_pks.values())
# print(data['cached'])
if pks:
_field = getattr(contactsettings, field)
_field.add(*pks)
# print(pks)
contactsettings.save()
# p = re.compile(r'([^\(pk=\d+\)]*\(pk=(?P<pk>\d+)\))')
# p.finditer():

Loading…
Cancel
Save