Browse Source

0.11 release (#87)

* Bug and doc fixes

* Updating 0.11 release notes

* Version number increment

* CSS fixes
Vince Salvino 6 years ago
parent
commit
02fa2c0d63

+ 6 - 6
README.md

@@ -21,7 +21,7 @@
 ## Quick start
 1. Run `pip install coderedcms`
 
-2. Run `coderedcms start mysite --sitename "My Company Inc." --domain example.com`
+2. Run `coderedcms start mysite --sitename "My Company Inc." --domain www.example.com`
 
     *Note: `--sitename` and `--domain` are optional to pre-populate settings of your website.*
 
@@ -42,7 +42,7 @@ In addition to the numerous benefits of [Wagtail](https://wagtail.io/features/),
 
 * **The entire editing experience is tailored for marketing content.** Create flashy hero units, callouts, and forms using a beautiful editing interface. Full SEO attributes and detailed Google Analytics tracking is available out of the box. Editors and Designers can easily update content, designs, and layout without fear of breakage and without the need to consult developers. Developers can fully customize the site without relying on plugins or undocumented hacks.
 
-* **Built-in SEO** including Opengraph, structured data, and many other meta tags automatically applied. A sitemap and robots.txt are also present and automatically updated. Articles and blog posts support Google’s preferred AMP format.
+* **Built-in SEO** including Open Graph, structured data, and many other meta tags automatically applied. A sitemap and robots.txt are also present and automatically updated. Articles and blog posts support Google’s preferred AMP format.
 
 * **Responsive design** out of the box! Editors can build content using [Bootstrap 4](https://getbootstrap.com/) components including navbars, hero units, carousels, cards, modals, and the powerful grid system.
 
@@ -50,7 +50,7 @@ In addition to the numerous benefits of [Wagtail](https://wagtail.io/features/),
 
 * **Full Google Analytics tracking** can be turned on by adding your UA- tag. Detailed event tracking can be turned on globally and fine-tuned for each clickable element such as links, buttons, and images.
 
-* **Professionally-backed support**. Both CodeRed CMS and Wagtail (the technology powering CodeRed CMS) are produced by software companies who offer professional support and services. This is built on proven technology that successfully serves small businesses and large enterprises around the world every day. [Find a developer near you](https://madewithwagtail.org/developers/).
+* **Professionally-backed support**. Both CodeRed CMS and Wagtail (the technology powering CodeRed CMS) are produced by software companies who offer professional support and services. This is built on proven technology that successfully serves small businesses and large enterprises around the world every day.
 
 
 
@@ -61,7 +61,7 @@ Work already in progress before 1.0 release:
 
 * Higher test coverage.
 
-* Full documentation via sphynx/readthedocs.
+* Full documentation.
 
 * Usability feedback and testing regarding the admin/editor experience.
 
@@ -84,7 +84,7 @@ Other future plans:
 ## Inspiration and Design Philosophy
 
 ### Inspiration from WordPress
-We the creators of CodeRed CMS deal with WordPress sites on a daily basis. While WordPress is fantastic for blogs and do-it-yourself websites, we feel it is very frustrustrating for use in a professional environment where the site needs to be actively enhanced, maintained, and secured on a daily basis. We designed CodeRed CMS as a marketing-focused WordPress replacement, *not* a WordPress clone. The intended audience is an agency, technology firm, business, or non-profit who has at least one full stack web developer managing the website.
+We the creators of CodeRed CMS deal with WordPress sites on a daily basis. While WordPress is fantastic for blogs and do-it-yourself websites, we feel it is very frustrating for use in a professional environment where the site needs to be actively enhanced, maintained, and secured on a daily basis. We designed CodeRed CMS as a marketing-focused WordPress replacement, *not* a WordPress clone. The intended audience is an agency, technology firm, business, or non-profit who has at least one full stack web developer managing the website.
 
 WordPress users will feel comfortable with CodeRed CMS, as many of the editing and design paradigms are similar such as:
 
@@ -112,4 +112,4 @@ One major point of difference between between CodeRed and stock Wagtail is the a
 
 
 ## Contact
-We would love to hear your questions, comments, and feedback. Contact us on github or at info@coderedcorp.com.
+We would love to hear your questions, comments, and feedback. Contact us on GitHub or at info@coderedcorp.com.

+ 1 - 1
coderedcms/__init__.py

@@ -1,4 +1,4 @@
-release = ['0', '10', '0']
+release = ['0', '11', '0']
 
 __version__ = "{0}.{1}.{2}".format(release[0], release[1], release[2])
 __shortversion__ = "{0}.{1}".format(release[0], release[1])

+ 2 - 2
coderedcms/static/css/codered-admin.css

@@ -110,14 +110,14 @@ input[type='checkbox']::before, input[type='radio']::before {
         width: auto;
     }
     body:not(.login) ul.fields > li:not(.label-above) .field > label {
-        width:40%;
+        width:100%;
         max-width:15em;
     }
     body:not(.login) ul.fields > li:not(.label-above) ul.fields > li > label,
     body:not(.login) ul.fields > li:not(.label-above) ul.fields > li > .label,
     body:not(.login) .struct-block ul.fields > li:not(.label-above) .field > label,
     body:not(.login) .multiple     ul.fields > li:not(.label-above) .field > label {
-        width:25%;
+        width:20%;
         max-width:10em;
     }
     .object.full .field-content {

+ 9 - 1
coderedcms/static/css/codered-editor.css

@@ -43,9 +43,13 @@
 
 .input input,
 .input select {
-    width: 350px;
+    width: 300px;
     max-width: 100%;
 }
+.input input[type='radio'],
+.input input[type='checkbox'] {
+    width: auto;
+}
 .input textarea,
 .full .input input {
     width:100%;
@@ -103,6 +107,10 @@ li.sequence-member .struct-block .sequence-container .sequence-member-inner {
     font-weight: bold;
 }
 
+.tab-content {
+    width: 100%;
+}
+
 .objects * {
     box-sizing: border-box;
 }

+ 3 - 3
docs/_static/versions.js

@@ -13,14 +13,14 @@ function setversions(data) {
 }
 
 $(document).ready(function() {
-    if(sessionStorage.getItem(vfile)) {
-        setversions(sessionStorage.getItem(vfile));
+    if(sessionStorage.getItem(vroot+vfile)) {
+        setversions(sessionStorage.getItem(vroot+vfile));
     }
     else {
         $.ajax({
             url: vroot + vfile,
             success: function(data) {
-                sessionStorage.setItem(vfile, data);
+                sessionStorage.setItem(vroot+vfile, data);
                 setversions(data);
             }
         });

+ 23 - 16
docs/features/mailchimp.rst

@@ -1,18 +1,23 @@
 Mailchimp Integration
 =====================
 
-Implementations of the abstract `CoderedFormPage` can add their form submissions to a Mailchimp list.
-When this functionality is enabled, you can map form submission variables to merge variables and add 
+This feature can automatically subscribe someone to a Mailchimp email list when they submit a form.
+When this functionality is enabled, you can map form submission variables to merge variables and add
 form submissions to specific interest groups.
 
+For example, if you have a contact form, you might want to opt-in submitters to a newsletter Mailchimp list.
+And if you have a sales inquiry form, you could opt-in those submitters to a separate sales Mailchimp list
+with a particular interest group.
+
+
 Implementation
-~~~~~~~~~~~~~~
+--------------
 
-By default, when you generate a website, you will get an implementation of `CoderedFormPage`.
+By default, when you generate a website, you will get an implementation of ``CoderedFormPage``.
 To get the functionality working, you need to do the following:
 
-- Implmenet the abstract `MailchimpSubscriberIntegration` class with a `ParentalKey` that points to your `FormPage`
-- Add an `integrations_panels` variable to `FormPage` that holds an `InlinePanel` for your implemented `MailchimpSubscriberIntegration` class
+- Implement the abstract ``MailchimpSubscriberIntegration`` class with a ``ParentalKey`` that points to your ``FormPage``
+- Add an ``integrations_panels`` variable to ``FormPage`` that holds an ``InlinePanel`` for your implemented ``MailchimpSubscriberIntegration`` class
 
 Here is what the resulting code will look like in ``website/models.py``::
 
@@ -21,7 +26,7 @@ Here is what the resulting code will look like in ``website/models.py``::
     from wagtail.admin.edit_handlers import InlinePanel
 
     class FormPageMailchimpSubscriberIntegration(MailchimpSubscriberIntegration):
-        page = ParentalKey('FormPage', related_name='mailchimp_subscriber_integrations', on_delete=models.CASCADE)
+        page = ParentalKey('FormPage', related_name='mailchimp_integrations', on_delete=models.CASCADE)
 
 
     class FormPage(CoderedFormPage):
@@ -34,26 +39,28 @@ Here is what the resulting code will look like in ``website/models.py``::
         template = 'coderedcms/pages/form_page.html'
 
         integration_panels = [
-            InlinePanel('mailchimp_subscriber_integrations',
-                heading="Mailchimp Subscriber Integrations",
+            InlinePanel('mailchimp_integrations',
+                heading="Mailchimp",
             )
         ]
 
 
 Next run ``python manage.py makemigrations website`` and ``python manage.py migrate`` to
-make the changes to your project.  You will also need to add your api key to the Mailchimp API settings in the CMS.
+make the changes to your project.  You will also need to add your API key to the Mailchimp API settings in the CMS.
+
 
 How to Use
-~~~~~~~~~~
-When you make or edit a `FormPage`, you will now see an "Integrations" tab.  Clicking the plus icon will instantiate an integration. 
-You can add as many of these integraitons objects as you need.  This is useful if you want to send a submission to more than one list.
+----------
+
+When you make or edit a ``FormPage``, you will now see an "Integrations" tab.  Clicking the plus icon will instantiate an integration.
+You can add as many of these integration objects as you need.  This is useful if you want to send a submission to more than one list.
 When you select a list, the instance will load in the merge variables and interest categories.  The interest categories are straightforward.
 You just select the interests you want the submission to have.
 
-The merge variables are a bit more complex.  They work similarly to the emails that are sent after a form submission.  
+The merge variables are a bit more complex.  They work similarly to the emails that are sent after a form submission.
 You can decide what values from your form are put into which merge variables.  These values will get rendered by the Django renderer, as such
 they use the same syntax.  The context for the render will be your form submission fields.  For example, if you have fields named "Email Address",
-"First Name", "Phone", the context variables will be `email_address`, `first_name`, `phone`.  So if you have a merge variable, FIRSTNAME, you would want
-to input `{{ first_name }}` into that field.
+"First Name", "Phone", the context variables will be ``email_address``, ``first_name``, ``phone``.  So if you have a merge variable, FIRSTNAME, you would want
+to input ``{{ first_name }}`` into that field.
 
 That's it.  Whenever a user fills out the form on the front end, they will be subscribed to your Mailchimp list with the merge fields and interest categories that you configure.

+ 3 - 1
docs/getting_started/customize_develop.rst

@@ -1,6 +1,7 @@
 Developing your website
 =======================
 
+
 Page models
 -------------
 
@@ -10,6 +11,7 @@ custom fields to these models. After making a change to any of these models, be
 ``python manage.py makemigrations website`` and ``python manage.py migrate`` to apply the
 database changes.
 
+
 Hooks
 -----
 
@@ -27,7 +29,7 @@ affect the caching decision. For example::
     from wagtail.core import hooks
 
     @hooks.register('is_request_cacheable')
-    def nocache_in_query(request):
+    def nocache_in_query(request, curr_cache_decision):
         # if the querystring contains a "nocache" key, return False to forcibly not cache.
         # otherwise, do not return to let the CMS decide how to cache.
         if 'nocache' in request.GET:

+ 2 - 2
docs/getting_started/install.rst

@@ -2,12 +2,12 @@ Installation
 ============
 
 #. Run ``pip install coderedcms``
-#. Run ``coderedcms start mysite --sitename "My Company Inc." --domain example.com``
+#. Run ``coderedcms start mysite --sitename "My Company Inc." --domain www.example.com``
 
     .. note::
         ``--sitename`` and ``--domain`` are optional to pre-populate settings of your website.
 
-#. Enter the mysite project with ``cd mysite/``.
+#. Enter the ``mysite`` project with ``cd mysite/``.
 #. Run ``python manage.py migrate`` to create the core models.
 #. Run ``python manage.py createsuperuser`` to create the initial admin user.
 #. Run ``python manage.py runserver`` to launch the development server, and go to

+ 43 - 0
docs/releases/v0.11.0.rst

@@ -0,0 +1,43 @@
+CodeRed CMS 0.11.0 release notes
+================================
+
+
+New features
+------------
+
+* NEW Mailchimp integration with form pages. See :doc:`/features/mailchimp`.
+* Updated to Wagtail 2.4, which now includes Python 3.7 support.
+* Apple-touch-icon favicons are now included for better experience with iOS devices.
+* The "password required" page has been Bootstrap-ified and matches the website style.
+* ``coderedcms start`` command has new ``--sitename`` and ``--domain`` options to help pre-populate
+  settings. The command also has more helpful output for beginners.
+
+
+Bug fixes
+---------
+
+* Can now create Card Grids inside of a Hero Unit.
+* Fixed invalid HTML syntax in "Latest Pages" block.
+* Fix appearance of search page when no query is specified.
+* Layout fixes and CSS cleanup for admin dashboard.
+* Allow reordering form fields in generated website app.
+* Fixed bug in ``prod.py`` settings in generated website app.
+* Added ``__init__.py`` and ``apps.py`` to generated website app for better compatibility with uWSGI.
+
+
+Maintenance
+-----------
+
+* Standardized edit handler definitions in ``coderedcms/models/page_models.py``.
+* Removed unused CSS from deprecated "Formatted Code Block".
+* Updated wagtail-cache to 0.3, which includes Redis support.
+* Squashed all migrations in generated website app into 2 migrations.
+  There will always just be 2 initial migrations in this app going forward.
+
+
+Upgrade considerations
+----------------------
+
+* Django 1.11 support has been removed by Wagtail 2.4.
+* You will need to run ``python manage.py makemigrations website`` and
+  ``python manage.py migrate`` after upgrading.

+ 0 - 34
docs/releases/v0.11.rst

@@ -1,34 +0,0 @@
-CodeRed CMS 0.11.0 release notes
-================================
-
-
-New features
-------------
-
-* Updated to Wagtail 2.4
-* ``coderedcms start`` command has new ``--sitename`` and ``--domain`` options to help pre-populate
-  settings. The command also has more helpful output for beginners.
-
-
-Bug fixes
----------
-
-* Can now create Card Grids inside of a Hero Unit.
-* Fixed invalid HTML syntax in "Latest Pages" block.
-* Fix appearance of search page when no query is specified.
-* Allow reordering form fields in generated website app.
-* Fixed bug in ``prod.py`` settings in generated website app.
-* Added ``__init__.py`` and ``apps.py`` to generated website app for better compatibility with uWSGI.
-
-
-Maintenance
------------
-
-* Standardized edit handler definitions in `coderedcms/models/page_models.py`
-* Removed unused CSS from deprecated "Formatted Code Block"
-
-
-Upgrade considerations
-----------------------
-
-* Django 1.11 support has been removed per Wagtail 2.4

+ 1 - 1
setup.py

@@ -47,7 +47,7 @@ setup(
         'icalendar==4.0.*',
         'wagtail==2.4.*',
         'wagtailfontawesome>=1.1.3,<2.0',
-        'wagtail-cache==0.2.*',
+        'wagtail-cache==0.3.*',
         'wagtail-import-export>=0.1,<0.2'
     ],
     extras_require={