Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions allink_core/core/customisation/dummy_new_app_form/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# -*- coding: utf-8 -*-
default_app_config = 'apps.dummy_app.config.DummyAppConfig'
8 changes: 8 additions & 0 deletions allink_core/core/customisation/dummy_new_app_form/admin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# -*- coding: utf-8 -*-
from django.contrib import admin
from .models import DummyAppSignup


@admin.register(DummyAppSignup)
class DummyAppSignupAdmin(admin.ModelAdmin):
pass
14 changes: 14 additions & 0 deletions allink_core/core/customisation/dummy_new_app_form/cms_apps.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# -*- coding: utf-8 -*-
from cms.app_base import CMSApp
from cms.apphook_pool import apphook_pool


class DummyAppApphook(CMSApp):
name = 'DummyApp Apphook'
app_name = 'dummy_app'

def get_urls(self, page=None, language=None, **kwargs):
return ['apps.dummy_app.urls']


apphook_pool.register(DummyAppApphook)
15 changes: 15 additions & 0 deletions allink_core/core/customisation/dummy_new_app_form/cms_plugins.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# -*- coding: utf-8 -*-
from cms.plugin_pool import plugin_pool
from allink_core.core.cms_plugins import CMSAllinkBaseFormPlugin
from .models import DummyAppSignupPlugin
from .forms import DummyAppSignupForm


@plugin_pool.register_plugin
class CMSDummyAppSignupPlugin(CMSAllinkBaseFormPlugin):
name = 'DummyApp Signup Plugin'
model = DummyAppSignupPlugin
render_template = 'dummy_app/plugins/signup/content.html'

form_class = DummyAppSignupForm
url_name = 'signup'
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# -*- coding: utf-8 -*-
#TODO
7 changes: 7 additions & 0 deletions allink_core/core/customisation/dummy_new_app_form/config.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# -*- coding: utf-8 -*-
from django.apps import AppConfig


class DummyAppConfig(AppConfig):
name = 'apps.dummy_app'
verbose_name = "DummyApp"
28 changes: 28 additions & 0 deletions allink_core/core/customisation/dummy_new_app_form/emails.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# -*- coding: utf-8 -*-
from django.utils.translation import ugettext_lazy as _
from allink_core.core_apps.allink_mandrill.base import AllinkMandrillFormPluginEmail


class DummyAppSignupConfirmationEmail(AllinkMandrillFormPluginEmail):
template_name = 'some_client_dummy_app_signup_confirmation'
google_analytics_campaign = template_name

def fetch_to_email_addresses(self):
return [
self.create_email_to_entry(
self.form.data.get('email'),
''.format(self.form.fields.get('last_name'), self.form.fields.get('first_name'))
),
]


class DummyAppSignupInternalEmail(AllinkMandrillFormPluginEmail):
template_name = 'some_client_dummy_app_signup_internal'
translated = False

def build_subject(self):
return _('New inquiry')

def fetch_to_email_addresses(self):
return [self.create_email_to_entry(email, self.config.get_default_from_name())
for email in self.plugin.internal_recipients]
9 changes: 9 additions & 0 deletions allink_core/core/customisation/dummy_new_app_form/forms.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# -*- coding: utf-8 -*-
from django.forms import ModelForm
from .models import DummyAppSignup


class DummyAppSignupForm(ModelForm):
class Meta:
model = DummyAppSignup
fields = '__all__'
38 changes: 38 additions & 0 deletions allink_core/core/customisation/dummy_new_app_form/models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# -*- coding: utf-8 -*-
from django.db import models
from django.utils.translation import ugettext_lazy as _
from model_utils.models import TimeStampedModel
from allink_core.core.models.base_plugins import AllinkBaseFormPlugin
from allink_core.core.models.choices import SALUTATION_CHOICES


class DummyAppSignup(TimeStampedModel):
salutation = models.IntegerField(
_('Salutation'),
choices=SALUTATION_CHOICES,
)

first_name = models.CharField(
_('First Name'),
max_length=255,
)

last_name = models.CharField(
_('Last Name'),
max_length=255,
)

place = models.CharField(
_('Place'),
max_length=255,
blank=True,
)

email = models.EmailField(
_('Email'),
null=True
)


class DummyAppSignupPlugin(AllinkBaseFormPlugin):
pass
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
{% load i18n widget_tweaks allink_form_tags static %}
<div class="dummy-app-signup-plugin">
<div class="dummy-app-signup-plugin__content">
<div class="dummy-app-signup-plugin__form_text text-container">
<p>{{ instance.form_text }}</p>
</div>
<form
novalidate
method="POST"
action="{{ action }}"
id="dummy-app-signup-form"
data-success-url="{{ success_url }}"
class="dummy-app-signup-form form-default ajax-form validate-form"
data-success-data-layer-event="dummy-app-signup.sent">
{% if csrf_token_value %}
<input type='hidden' name='csrfmiddlewaretoken' value='{{ csrf_token_value }}'/>
{% else %}
{% if not method == "get" %}{% csrf_token %}{% endif %}
{% endif %}

<div class="dummy-app-signup-form__section">
<div class="dummy-app-signup-form__row dummy-app-signup-form__row--full-width">
{% include 'partials/forms/form_field.html' with field=form.salutation %}
</div>
<div class="dummy-app-signup-form__row dummy-app-signup-form__row--full-width">
{% include 'partials/forms/form_field.html' with field=form.first_name placeholder_enabled=True %}
</div>
<div class="dummy-app-signup-form__row dummy-app-signup-form__row--full-width">
{% include 'partials/forms/form_field.html' with field=form.last_name placeholder_enabled=True %}
</div>
<div class="dummy-app-signup-form__row dummy-app-signup-form__row--full-width">
{% include 'partials/forms/form_field.html' with field=form.place placeholder_enabled=True %}
</div>
<div class="dummy-app-signup-form__row dummy-app-signup-form__row--full-width">
{% include 'partials/forms/form_field.html' with field=form.email placeholder_enabled=True %}
</div>
{% trans "Submit" as link_label %}
{% include "partials/buttons/link.html" with link_url="javascript:$('#dummy-app-signup-form').submit()" link_label=link_label link_classes="dummy-app-signup-form__btn btn btn-primary" link_attributes='type="submit" id="dummy-app-signup-form-button" rel="noopener" role="button"' %}
</div>
</form>
</div>
</div>
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{% load i18n %}

<div class="form-success">
<div class="form-success__message text-container"><p>{{ instance.success_message }}</p></div>
</div>
7 changes: 7 additions & 0 deletions allink_core/core/customisation/dummy_new_app_form/urls.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# # -*- coding: utf-8 -*-
from django.urls import path
from .views import DummyAppSignupView

urlpatterns = [
path('signup/<int:plugin_id>/', DummyAppSignupView.as_view(), name='signup'),
]
24 changes: 24 additions & 0 deletions allink_core/core/customisation/dummy_new_app_form/views.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# -*- coding: utf-8 -*-
from django.utils.translation import get_language
from allink_core.core.views import AllinkBasePluginAjaxCreateView
from .models import DummyAppSignup
from .forms import DummyAppSignupForm
from .cms_plugins import DummyAppSignupPlugin
from .emails import DummyAppSignupConfirmationEmail, DummyAppSignupInternalEmail


class DummyAppSignupView(AllinkBasePluginAjaxCreateView):
model = DummyAppSignup
form_class = DummyAppSignupForm
template_name = 'dummy_app/plugins/signup/content.html'

success_template_name = 'dummy_app/plugins/signup/success.html'
plugin_model = DummyAppSignupPlugin

def form_valid(self, form):
response = super(DummyAppSignupView, self).form_valid(form)

DummyAppSignupConfirmationEmail(form=form, plugin=self.plugin_instance, language=get_language()).send_mail()
DummyAppSignupInternalEmail(form=form, plugin=self.plugin_instance, language=get_language()).send_mail()

return response
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# -*- coding: utf-8 -*-
25 changes: 25 additions & 0 deletions allink_core/core/customisation/tests/new_app_form/test_plugins.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
from django.test.client import RequestFactory
from django.test.testcases import TestCase
from allink_core.core.test import GenericPluginMixin
from allink_core.core.customisation.dummy_new_app_form.cms_apps import DummyAppApphook
from allink_core.core.customisation.dummy_new_app_form.cms_plugins import CMSDummyAppSignupPlugin


# class CMSDummyAppSignupPluginTestCaseApp(GenericPluginMixin, TestCase):
# apphook = DummyAppApphook.name
# namespace = DummyAppApphook.app_name
# page_template = 'default.html'
# apphook_object = DummyAppApphook
#
# plugin_class = CMSDummyAppSignupPlugin
# init_kwargs = {
# 'from_email_address': '[email protected]'
# }
#
# def test_context_object_list_all(self):
# plugin = self.plugin_model_instance.get_plugin_class_instance()
# context = {'request': RequestFactory()}
# context = plugin.render(context, self.plugin_model_instance, None)
#
# self.assertIsInstance(context['form'], self.plugin_class.form_class)
# self.assertEqual(context['action'], self.plugin_class.get_form_action(self.plugin_model_instance))
Empty file.
2 changes: 1 addition & 1 deletion allink_core/core/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ def post(self, request, plugin_id, *args, **kwargs):
adds the plugin instance from the plugin_id kwargs
"""
self.plugin_instance = self.plugin_model.objects.get(id=plugin_id)
_, self.plugin = self.plugin_instance.get_plugin_instance()
self.plugin = self.plugin_instance.get_plugin_class_instance()

return super().post(request, *args, **kwargs)

Expand Down
4 changes: 3 additions & 1 deletion test/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,9 @@
'filer',
'easy_thumbnails',
'mptt',
'aldryn_google_tag_manager'] + ALLINK_INSTALLED_APPS
'aldryn_google_tag_manager',

] + ALLINK_INSTALLED_APPS

# allink apps which are installed in this project
INSTALLED_ALLINK_CORE_APPS = [
Expand Down