Merge pull request #62 from tmslav/develop

Develop
This commit is contained in:
tmslav 2016-05-07 23:07:22 +02:00
commit f64c42e554
6 changed files with 116 additions and 44 deletions

View file

@ -43,6 +43,25 @@ After You have complited the task create a pull request and ask someone to revie
`read more about getting code from upstream here <https://help.github.com/articles/syncing-a-fork/>`_
*merging your branch*
(**IMPORTANT**)
Before You make a pull request from Your forked branch to the ungleich make sure You did merge and resolve any conflicts You may find and that the application is running bug free.
Also You can run
``./manage test``
To merge upstream branch run this git commands.
``git fetch upstream``
``git checkout your_feature_branch``
``git merge remotes/upstream/develop``

View file

@ -128,7 +128,6 @@ MIDDLEWARE_CLASSES = (
ROOT_URLCONF = 'dynamicweb.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
@ -446,14 +445,15 @@ AUTH_USER_MODEL = 'membership.CustomUser'
# PAYMENT
STRIPE_API_PUBLIC_KEY = 'pk_test_QqBZ50Am8KOxaAlOxbcm9Psl' # used in frontend to call from user browser
STRIPE_API_PRIVATE_KEY = 'sk_test_dqAmbKAij12QCGfkYZ3poGt2' # used in backend payment
STRIPE_DESCRIPTION_ON_PAYMENT = "Payment for ungleich GmbH services"
# EMAIL MESSAGES
REGISTRATION_MESSAGE = {'subject': "Validation mail",
'message': 'Please validate Your account under this link http://localhost:8000/en-us/validate/{}',
'from': 'test@test.com'}
'message': 'Thank You for registering for account on Digital Glarus.\nPlease verify Your account under following link http://{host}/en-us/digitalglarus/login/validate/{slug}',
}
STRIPE_API_PRIVATE_KEY = env('STRIPE_API_PRIVATE_KEY')
STRIPE_API_PUBLIC_KEY = env('STRIPE_API_PUBLIC_KEY')
DEBUG = True
@ -461,5 +461,3 @@ if DEBUG:
from .local import *
else:
from .prod import *
#dont migrate test
# SOUTH_TESTS_MIGRATE = False

View file

@ -8,6 +8,8 @@ ADMINS = (
MANAGERS = ADMINS
REGISTRATION_MESSAGE['message'] = REGISTRATION_MESSAGE['message'].format(host='digitalglarus.ungleich.ch',slug='{slug}')
ALLOWED_HOSTS = [
".ungleich.ch",
"digital.glarus.ungleich.ch" ,

View file

@ -4,12 +4,12 @@ from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.contrib.auth.models import User, AbstractBaseUser, BaseUserManager, AbstractUser
from django.contrib.auth.hashers import make_password
from django.core.mail import send_mail
from django.core.validators import RegexValidator
from django.contrib.auth.models import User
from django.contrib.sites.models import Site
from utils.stripe_utils import StripeUtils
from utils.mailer import DigitalGlarusRegistrationMailer
REGISTRATION_MESSAGE = {'subject': "Validation mail",
'message': 'Please validate Your account under this link http://localhost:8000/en-us/digitalglarus/login/validate/{}',
@ -72,9 +72,8 @@ class CustomUser(AbstractBaseUser):
if not user:
user = cls.objects.create_user(name=name, email=email, password=password)
if user:
send_mail(REGISTRATION_MESSAGE['subject'],
REGISTRATION_MESSAGE['message'].format(user.validation_slug),
REGISTRATION_MESSAGE['from'], [user.email], fail_silently=False)
dg = DigitalGlarusRegistrationMailer(user.validation_slug)
dg.send_mail(to=user.email)
return user
else:
return None

52
utils/mailer.py Normal file
View file

@ -0,0 +1,52 @@
import six
from django.core.mail import send_mail
from django.conf import settings
class BaseMailer(object):
def __init__(self):
self._slug = None
self.no_replay_mail = 'no-replay@ungleich.ch'
if not hasattr(self, '_to'):
self._to = None
@property
def slug(self):
return self._slug
@slug.setter
def slug(self, val):
assert isinstance(val, six.string_types), "slug is not string: %r" % val
self._slug = val
@property
def registration(self):
return self.message
@registration.setter
def registration(self, val):
msg = "registration is not dict with fields subject,message"
assert type(val) is dict, msg
assert val.get('subject') and val.get('message'), msg
self._message, self._subject, self._from = (
val.get('message'), val.get('subject'), val.get('from'))
assert isinstance(self.slug, six.string_types), 'slug not set'
def send_mail(self, to=None):
if not to:
to = self._to
if not self.message:
raise NotImplementedError
send_mail(self._subject, self._message, self.no_replay_mail, [to])
class DigitalGlarusRegistrationMailer(BaseMailer):
message = settings.REGISTRATION_MESSAGE
def __init__(self, slug):
self.slug = slug
self.registration = self.message
self._message = self._message.format(slug=self._slug)
super().__init__()

View file

@ -1,6 +1,5 @@
import stripe
from django.conf import settings
stripe.api_key = settings.STRIPE_API_PRIVATE_KEY
@ -122,3 +121,6 @@ class StripeUtils(object):
name=name,
currency=self.CURRENCY,
id=id)