subscribe fix

stage8
Slava 9 years ago
parent 3738b36f1c
commit e4338cc035
  1. 6
      Dockerfile
  2. 35
      README.md
  3. 2
      apps/emencia/django/newsletter/models.py
  4. 11
      apps/emencia/django/newsletter/views/admin_views.py
  5. 4
      apps/emencia/django/newsletter/views/expo_views.py
  6. 2
      docker-compose.yml
  7. 44
      proj/settings.py
  8. 1
      templates/client/blank.html
  9. 1
      templates/client/newsletters/mailing_settings.html

@ -3,6 +3,7 @@ FROM python:2.7.13
ENV PYTHONUNBUFFERED 1 ENV PYTHONUNBUFFERED 1
ENV LANG ru_RU.UTF-8 ENV LANG ru_RU.UTF-8
RUN curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
RUN apt-get update \ RUN apt-get update \
\ \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y \ && DEBIAN_FRONTEND=noninteractive apt-get install -y \
@ -21,8 +22,11 @@ RUN apt-get update \
gifsicle \ gifsicle \
libmemcached-dev \ libmemcached-dev \
locales \ locales \
nodejs \
\ \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
\
&& npm install
RUN sed -i -e 's/# ru_RU.UTF-8 UTF-8/ru_RU.UTF-8 UTF-8/' /etc/locale.gen && \ RUN sed -i -e 's/# ru_RU.UTF-8 UTF-8/ru_RU.UTF-8 UTF-8/' /etc/locale.gen && \
echo 'LANG="ru_RU.UTF-8"'>/etc/default/locale && \ echo 'LANG="ru_RU.UTF-8"'>/etc/default/locale && \
dpkg-reconfigure --frontend=noninteractive locales && \ dpkg-reconfigure --frontend=noninteractive locales && \

@ -22,9 +22,6 @@ RAVEN_CONFIG = {
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from settings import * from settings import *
# sorl.thumbnail
THUMBNAIL_DEBUG = True
DEFAULT_HTTP_SCHEME = 'http' DEFAULT_HTTP_SCHEME = 'http'
DATABASES = { DATABASES = {
@ -48,39 +45,7 @@ DATABASES = {
} }
} }
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
)
INSTALLED_APPS += ('south',)
# debug_toolbar settings
DEBUG_TOOLBAR_PATCH_SETTINGS = False
INTERNAL_IPS = ('127.0.0.1',)
MIDDLEWARE_CLASSES += (
'debug_toolbar.middleware.DebugToolbarMiddleware',
)
INSTALLED_APPS += (
'debug_toolbar',
)
JQUERY_URL = os.path.join(SITE_ROOT, 'static/client/js/jquery-ui-1.10.4.custom.min.js'),
DEBUG_TOOLBAR_PANELS = [
#'debug_toolbar.panels.versions.VersionsPanel',
'debug_toolbar.panels.timer.TimerPanel',
'debug_toolbar.panels.settings.SettingsPanel',
'debug_toolbar.panels.headers.HeadersPanel',
'debug_toolbar.panels.request.RequestPanel',
'debug_toolbar.panels.sql.SQLPanel',
'debug_toolbar.panels.staticfiles.StaticFilesPanel',
'debug_toolbar.panels.templates.TemplatesPanel',
'debug_toolbar.panels.cache.CachePanel',
'debug_toolbar.panels.signals.SignalsPanel',
'debug_toolbar.panels.logging.LoggingPanel',
'debug_toolbar.panels.redirects.RedirectsPanel',
]
# копия бд для тестов должна начинаться с приставки test_ # копия бд для тестов должна начинаться с приставки test_
TEST_RUNNER = 'proj.test.CustomTestRunner' TEST_RUNNER = 'proj.test.CustomTestRunner'

@ -170,7 +170,7 @@ class Contact(models.Model):
periodic_day = models.PositiveSmallIntegerField(_(u'День отправки'), periodic_day = models.PositiveSmallIntegerField(_(u'День отправки'),
choices=PERIODIC_DAY_CHOICES, default=PERIODIC_DAY_CHOICES.WED) choices=PERIODIC_DAY_CHOICES, default=PERIODIC_DAY_CHOICES.WED)
content_news = models.BooleanField(_(u'Новости событий'), blank=True, default=True) content_news = models.BooleanField(_(u'Новости событий'), blank=True, default=True)
content_overview = models.BooleanField(_(u'Статьи для экспонентов'), blank=True, default=True) content_overview = models.BooleanField(_(u'Статьи для экспонентов'), blank=True, default=False)
content_articles = models.BooleanField(_(u'Статьи для организаторов событий'), blank=True, default=True) content_articles = models.BooleanField(_(u'Статьи для организаторов событий'), blank=True, default=True)
tags = models.ManyToManyField('theme.Tag', verbose_name=_(u'Теги'), blank=True, null=True) tags = models.ManyToManyField('theme.Tag', verbose_name=_(u'Теги'), blank=True, null=True)
themes = models.ManyToManyField('theme.Theme', blank=True, null=True, verbose_name=_(u'Тематики')) themes = models.ManyToManyField('theme.Theme', blank=True, null=True, verbose_name=_(u'Тематики'))

@ -259,15 +259,20 @@ class UpdateMailingList(MailingListMixin, UpdateView):
def export_contacts(request, pk): def export_contacts(request, pk):
contacts = Contact.objects.filter(mailinglist_subscriber__pk=pk)\ contacts = Contact.objects.filter(
.values_list('email', flat=True) mailinglist_subscriber__pk=pk
).values(
'email', 'first_name', 'last_name'
)
response = HttpResponse(content_type='text/csv') response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename="contacts.csv"' response['Content-Disposition'] = 'attachment; filename="contacts.csv"'
writer = csv.writer(response) writer = csv.writer(response)
for contact in contacts: for contact in contacts:
writer.writerow([contact]) writer.writerow(
[contact['email'], contact['first_name'].encode('utf-8'), contact['last_name'].encode('utf-8')]
)
return response return response

@ -157,7 +157,9 @@ def popup_validate(request):
contact.send_activation() contact.send_activation()
response['success'] = True response['success'] = True
response['redirect'] = True response['redirect'] = True
response['redirect_url'] = SubscribeView.success_url response['redirect_url'] = str(
reverse_lazy('subscription_activation_send')
)
else: else:
response['errors'] = form.errors response['errors'] = form.errors

@ -34,7 +34,7 @@ services:
- MYSQL_ROOT_PASSWORD=root - MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=expomap - MYSQL_DATABASE=expomap
ports: ports:
- "3305:3306" - "3306:3306"
volumes: volumes:
- ./data/mysql/db:/var/lib/mysql - ./data/mysql/db:/var/lib/mysql

@ -512,9 +512,43 @@ NOCAPTCHA = True
if not os.path.exists(MEDIA_ROOT + '/upload'): if not os.path.exists(MEDIA_ROOT + '/upload'):
os.makedirs(MEDIA_ROOT + '/upload') os.makedirs(MEDIA_ROOT + '/upload')
try: # debug_toolbar settings
from proj.local import * DEBUG_TOOLBAR_PATCH_SETTINGS = False
except ImportError, e: INTERNAL_IPS = ('127.0.0.1',)
pass JQUERY_URL = os.path.join(SITE_ROOT, 'static/client/js/jquery-ui-1.10.4.custom.min.js'),
DEBUG_TOOLBAR_PANELS = [
#'debug_toolbar.panels.versions.VersionsPanel',
'debug_toolbar.panels.timer.TimerPanel',
'debug_toolbar.panels.settings.SettingsPanel',
'debug_toolbar.panels.headers.HeadersPanel',
'debug_toolbar.panels.request.RequestPanel',
'debug_toolbar.panels.sql.SQLPanel',
'debug_toolbar.panels.staticfiles.StaticFilesPanel',
'debug_toolbar.panels.templates.TemplatesPanel',
'debug_toolbar.panels.cache.CachePanel',
'debug_toolbar.panels.signals.SignalsPanel',
'debug_toolbar.panels.logging.LoggingPanel',
'debug_toolbar.panels.redirects.RedirectsPanel',
]
def show_toolbar(request):
if request.is_ajax():
return False
return True
DEBUG_TOOLBAR_CONFIG = {
'SHOW_TOOLBAR_CALLBACK': 'proj.settings.show_toolbar',
}
THUMBNAIL_DEBUG = DEBUG if DEBUG:
MIDDLEWARE_CLASSES += (
'debug_toolbar.middleware.DebugToolbarMiddleware',
)
INSTALLED_APPS += (
'debug_toolbar',
)
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
)
THUMBNAIL_DEBUG = True

@ -159,7 +159,6 @@ This template include basic anf main styles and js files,
<!-- Английский вариант текста для p.chromeframe --> <!-- Английский вариант текста для p.chromeframe -->
<p class="chromeframe">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a> to improve your experience.</p> <p class="chromeframe">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a> to improve your experience.</p>
{% endcomment %} {% endcomment %}
Foo
{% get_top_banner %} {% get_top_banner %}
<div class="page-wrap"> <div class="page-wrap">

@ -191,6 +191,7 @@
{% if not user.is_authenticated %} {% if not user.is_authenticated %}
<div class="tos"> <div class="tos">
<strong>{% trans 'Нажимая «Подписаться», вы соглашаетесь получать' %} <br /> {% trans 'материалы компании Expomap на свой электронный адрес' %} </strong> <strong>{% trans 'Нажимая «Подписаться», вы соглашаетесь получать' %} <br /> {% trans 'материалы компании Expomap на свой электронный адрес' %} </strong>
<br />
<a href="{% url 'termsofuse' %}" style="color:#a2a2a2;">{% trans "Пользовательское соглашение" %}</a> <a href="{% url 'termsofuse' %}" style="color:#a2a2a2;">{% trans "Пользовательское соглашение" %}</a>
</div> </div>
{% endif %} {% endif %}

Loading…
Cancel
Save