@ -6,6 +6,8 @@ from datetime import date
from datetime import timedelta
from datetime import timedelta
from dateutil import relativedelta
from dateutil import relativedelta
from email . MIMEImage import MIMEImage
from email . MIMEImage import MIMEImage
from random import choice
from itertools import chain
import copy
import copy
import operator
import operator
@ -25,7 +27,7 @@ from django.contrib.contenttypes.models import ContentType
from django . contrib . auth . models import Group
from django . contrib . auth . models import Group
from django . template . loader import render_to_string , get_template
from django . template . loader import render_to_string , get_template
from django . template import Context
from django . template import Context
from django . http import QueryDict
from emencia . django . newsletter . managers import ContactManager
from emencia . django . newsletter . managers import ContactManager
from emencia . django . newsletter . settings import BASE_PATH
from emencia . django . newsletter . settings import BASE_PATH
@ -198,15 +200,19 @@ class Contact(models.Model):
return reverse ( ' admin:newsletter_contact_change ' , args = ( self . pk , ) )
return reverse ( ' admin:newsletter_contact_change ' , args = ( self . pk , ) )
def get_announce_context_v2 ( self , date = None ) :
def get_announce_context_v2 ( self , date = None ) :
# import error
from emencia . django . newsletter . utils . tokens import tokenize
date = date or datetime . today ( ) . date ( )
date = date or datetime . today ( ) . date ( )
activate ( ' ru ' )
activate ( ' ru ' )
ctx = {
ctx = {
' recomended ' : [ ] ,
' recomm ended ' : [ ] ,
' moscow ' : [ ] ,
' moscow ' : [ ] ,
' russia ' : [ ] ,
' russia ' : [ ] ,
' foreign ' : [ ] ,
' foreign ' : [ ] ,
' news ' : [ ] ,
' news ' : [ ] ,
' blog ' : [ ] ,
' blog ' : [ ] ,
' mailing_settings_url ' : reverse ( ' newsletter-authmailingsettings ' , args = tokenize ( self ) ) ,
}
}
th_tg_filter_params = [ ]
th_tg_filter_params = [ ]
th_tg_structure = { }
th_tg_structure = { }
@ -223,12 +229,20 @@ class Contact(models.Model):
th_tg_filter_params . append ( SQ ( * * p ) )
th_tg_filter_params . append ( SQ ( * * p ) )
th_tg_filter = reduce ( operator . or_ , th_tg_filter_params )
th_tg_filter = reduce ( operator . or_ , th_tg_filter_params )
# recomended
# recommended
recomended = RelatedSearchQuerySet ( ) . models ( Exposition , Conference )
paid_recommend = NewsletterRecommend . objects . filter (
fr__gte = date ,
to__lte = date )
recommended = RelatedSearchQuerySet ( ) . models ( Exposition , Conference ) \
. filter ( expohit = True )
if th_tg_filter :
if th_tg_filter :
recomended = recomended . filter ( th_tg_filter )
paid_recommend = list ( paid_recommend . filter ( theme__in = th_tg_structure . keys ( ) ) )
recommended = recommended . filter ( th_tg_filter )
try :
try :
ctx [ ' recomended ' ] = recomended [ 0 ]
ctx [ ' recommended ' ] = choice ( paid_recommend )
except :
try :
ctx [ ' recommended ' ] = recommended [ 0 ]
except :
except :
pass
pass
@ -239,6 +253,12 @@ class Contact(models.Model):
if th_tg_filter is not None :
if th_tg_filter is not None :
moscow_sqs = moscow_sqs . filter ( th_tg_filter )
moscow_sqs = moscow_sqs . filter ( th_tg_filter )
ctx [ ' moscow ' ] = moscow_sqs . order_by ( ' data_begin ' ) [ : 4 ]
ctx [ ' moscow ' ] = moscow_sqs . order_by ( ' data_begin ' ) [ : 4 ]
moscow_filter_url = QueryDict ( ' ' , mutable = True )
moscow_filter_url . setlist ( ' theme ' , th_tg_structure . keys ( ) )
moscow_filter_url . setlist ( ' tag ' , list ( chain ( th_tg_structure . values ( ) ) ) )
moscow_filter_url [ ' city ' ] = settings . MOSCOW_PK
moscow_filter_url [ ' date_from ' ] = date . strftime ( ' %d . % m. % Y ' )
ctx [ ' moscow_filter_url ' ] = moscow_filter_url . urlencode ( )
# russia
# russia
if self . russia :
if self . russia :
@ -252,7 +272,12 @@ class Contact(models.Model):
if th_tg_filter is not None :
if th_tg_filter is not None :
russia_sqs = russia_sqs . filter ( th_tg_filter )
russia_sqs = russia_sqs . filter ( th_tg_filter )
ctx [ ' russia ' ] = russia_sqs . order_by ( ' data_begin ' ) [ : 3 ]
ctx [ ' russia ' ] = russia_sqs . order_by ( ' data_begin ' ) [ : 3 ]
russia_filter_url = QueryDict ( ' ' , mutable = True )
russia_filter_url . setlist ( ' theme ' , th_tg_structure . keys ( ) )
russia_filter_url . setlist ( ' tag ' , list ( chain ( th_tg_structure . values ( ) ) ) )
russia_filter_url [ ' country ' ] = settings . RUSSIA_PK
russia_filter_url [ ' date_from ' ] = r_date . strftime ( ' %d . % m. % Y ' )
ctx [ ' russia_filter_url ' ] = russia_filter_url . urlencode ( )
# foreign
# foreign
if self . foreign :
if self . foreign :
@ -262,6 +287,12 @@ class Contact(models.Model):
if th_tg_filter is not None :
if th_tg_filter is not None :
foreign_sqs = foreign_sqs . filter ( th_tg_filter )
foreign_sqs = foreign_sqs . filter ( th_tg_filter )
ctx [ ' foreign ' ] = foreign_sqs . order_by ( ' data_begin ' ) [ : 4 ]
ctx [ ' foreign ' ] = foreign_sqs . order_by ( ' data_begin ' ) [ : 4 ]
foreign_filter_url = QueryDict ( ' ' , mutable = True )
foreign_filter_url . setlist ( ' theme ' , th_tg_structure . keys ( ) )
foreign_filter_url . setlist ( ' tag ' , list ( chain ( th_tg_structure . values ( ) ) ) )
foreign_filter_url . setlist ( ' country ' , f_countries )
foreign_filter_url [ ' date_from ' ] = date . strftime ( ' %d . % m. % Y ' )
ctx [ ' foreign_filter_url ' ] = foreign_filter_url . urlencode ( )
# news
# news
if self . content_news :
if self . content_news :