diff --git a/app/cells/decidim_zuerich/newsletter_templates/test/show.erb b/app/cells/decidim_zuerich/newsletter_templates/test/show.erb
new file mode 100644
index 00000000..a93ca213
--- /dev/null
+++ b/app/cells/decidim_zuerich/newsletter_templates/test/show.erb
@@ -0,0 +1,132 @@
+<% if organization_primary_color %>
+
+<% end %>
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+ <%= render partial: "layouts/decidim/mailer_logo.html", locals: { organization: organization } %>
+
+ |
+
+
+ |
+
+
+
+
+ <% if organization.official_img_header.attached? %>
+ <%= link_to organization.official_url do %>
+ <%= image_tag organization.attached_uploader(:official_img_header).url(host: organization.host), alt: "", style: "max-height: 50px", class: "float-right" %>
+ <% end %>
+ <% end %>
+ |
+
+
+ |
+ |
+
+
+ |
+
+
+
+
+
+ <% if has_main_image? %>
+
+
+
+ <%= main_image %>
+ |
+ |
+
+
+ <% end %>
+
+
+
+
+ <%= introduction %>
+
+ <% if has_cta? %>
+
+
+
+ <% end %>
+
+ <%= body %>
+
+
+ <% fields.each do |field| %>
+ <%= field %>
+
+ <% end %>
+
+ |
+ |
+
+
+
+
+
+
+
+ |
+
+
+ <% if @custom_url_for_mail_root.present? %>
+ <%= link_to organization.name.html_safe, @custom_url_for_mail_root %>
+ <% else %>
+ <%= link_to organization.name.html_safe, decidim.root_url(host: organization.host) %>
+ <% end %>
+
+ |
+
+
+ |
+
+
diff --git a/app/cells/decidim_zuerich/newsletter_templates/test_cell.rb b/app/cells/decidim_zuerich/newsletter_templates/test_cell.rb
new file mode 100644
index 00000000..b1edc9fa
--- /dev/null
+++ b/app/cells/decidim_zuerich/newsletter_templates/test_cell.rb
@@ -0,0 +1,68 @@
+require "cell/partial"
+
+module DecidimZuerich
+ module NewsletterTemplates
+ class TestCell < Decidim::NewsletterTemplates::BaseCell
+ def show
+ render :show
+ end
+
+ def introduction
+ parse_interpolations(uninterpolated_introduction, recipient_user, newsletter.id)
+ end
+
+ def uninterpolated_introduction
+ translated_attribute(model.settings.introduction)
+ end
+
+ def body
+ parse_interpolations(uninterpolated_body, recipient_user, newsletter.id)
+ end
+
+ def fields
+ %i[boolean integer string text].map do |type|
+ field = model.settings.send("field_#{type}")
+ translated = translated_attribute(field)
+ parse_interpolations(translated, recipient_user, newsletter.id)
+ end
+ end
+
+ def uninterpolated_body
+ translated_attribute(model.settings.body)
+ end
+
+ def has_cta?
+ cta_text.present? && cta_url.present?
+ end
+
+ def cta_text
+ parse_interpolations(
+ translated_attribute(model.settings.cta_text),
+ recipient_user,
+ newsletter.id
+ )
+ end
+
+ def cta_url
+ translated_attribute(model.settings.cta_url)
+ end
+
+ def has_main_image?
+ newsletter.template.images_container.main_image.attached?
+ end
+
+ def main_image
+ image_tag main_image_url
+ end
+
+ def main_image_url
+ newsletter.template.images_container.attached_uploader(:main_image).url(host: organization.host)
+ end
+
+ def organization_primary_color
+ organization.colors["primary"]
+ end
+ end
+ end
+end
+
diff --git a/app/cells/decidim_zuerich/newsletter_templates/test_settings_form/show.erb b/app/cells/decidim_zuerich/newsletter_templates/test_settings_form/show.erb
new file mode 100644
index 00000000..61dfb1e2
--- /dev/null
+++ b/app/cells/decidim_zuerich/newsletter_templates/test_settings_form/show.erb
@@ -0,0 +1,23 @@
+<% form.fields_for :settings, form.object.settings do |settings_fields| %>
+ <%= settings_fields.translated :editor, :introduction, label: t(".introduction") %>
+
+ <%= settings_fields.translated :text_field, :cta_text, label: t(".cta_text") %>
+
+ <%= settings_fields.text_field :cta_url, label: t(".cta_url") %>
+
+ <%= settings_fields.translated :editor, :body, label: t(".body") %>
+
+ <%= settings_fields.check_box :field_boolean, label: "Boolean" %>
+ <%= settings_fields.number_field :field_integer, label: "Integer" %>
+ <%= settings_fields.translated :text_field, :field_string, label: "String" %>
+ <%= settings_fields.translated :editor, :field_text, label: "Text" %>
+<% end %>
+
+<% form.fields_for :images, form.object.images do |images_fields| %>
+ <%= images_fields.upload :main_image, label: t(".main_image") %>
+<% end %>
+
+