├── .nvmrc ├── flex ├── __init__.py ├── migrations │ ├── __init__.py │ ├── 0001_initial.py │ ├── 0002_flexpage_body.py │ ├── 0003_auto_20191207_0436.py │ └── 0004_auto_20191208_0129.py ├── apps.py └── models.py ├── home ├── __init__.py ├── migrations │ ├── __init__.py │ ├── 0004_homepage_body.py │ ├── 0001_initial.py │ ├── 0005_auto_20191207_0211.py │ ├── 0003_auto_20191202_1816.py │ ├── 0002_create_homepage.py │ └── 0006_auto_20191207_0436.py ├── templates │ └── home │ │ └── home_page.html ├── models.py └── static │ └── css │ └── welcome_page.css ├── menus ├── __init__.py ├── migrations │ ├── __init__.py │ ├── 0003_menuitem_page.py │ ├── 0001_initial.py │ └── 0002_menuitem.py ├── apps.py ├── templatetags │ └── menu_tags.py ├── wagtail_hooks.py └── models.py ├── contact ├── __init__.py ├── migrations │ ├── __init__.py │ ├── 0002_auto_20191208_0303.py │ └── 0001_initial.py ├── apps.py └── models.py ├── rocketman ├── __init__.py ├── settings │ ├── __init__.py │ ├── dev.py │ └── production.py ├── static │ └── images │ │ ├── logo.png │ │ ├── facebook-og.png │ │ ├── twitter-og.png │ │ ├── grey-pattern.png │ │ ├── contact-overlay.png │ │ ├── facebook.svg │ │ ├── youtube.svg │ │ ├── link-arrow.svg │ │ ├── instagram.svg │ │ ├── twitter.svg │ │ └── snapchat.svg ├── templates │ ├── 404.html │ ├── streams │ │ ├── title_block.html │ │ ├── simple_richtext_block.html │ │ ├── call_to_action_block.html │ │ ├── testimonial_block.html │ │ ├── large_image_block.html │ │ ├── cards_block.html │ │ ├── image_and_text_block.html │ │ └── pricing_table_block.html │ ├── wagtailadmin │ │ └── base.html │ ├── flex │ │ └── flex_page.html │ ├── 500.html │ ├── contact │ │ ├── contact_page_landing.html │ │ └── contact_page.html │ ├── services │ │ ├── service_page.html │ │ └── service_listing_page.html │ ├── includes │ │ ├── header.html │ │ └── footer.html │ └── base.html ├── wsgi.py └── urls.py ├── services ├── __init__.py ├── migrations │ ├── __init__.py │ ├── 0001_initial.py │ └── 0002_servicepage_body.py ├── apps.py └── models.py ├── streams ├── __init__.py ├── migrations │ └── __init__.py └── apps.py ├── site_settings ├── __init__.py ├── migrations │ ├── __init__.py │ ├── 0005_auto_20191208_0408.py │ ├── 0002_contactsettings.py │ ├── 0003_hourssettings.py │ ├── 0001_initial.py │ └── 0004_footerctasettings.py ├── apps.py └── models.py ├── testimonials ├── __init__.py ├── migrations │ ├── __init__.py │ └── 0001_initial.py ├── apps.py ├── admin.py └── models.py ├── .babelrc ├── dev.txt ├── frontend ├── scss │ ├── utilities │ │ ├── _clearfix.scss │ │ ├── _overflow.scss │ │ ├── _screenreaders.scss │ │ ├── _visibility.scss │ │ ├── _shadows.scss │ │ ├── _float.scss │ │ ├── _align.scss │ │ ├── _background.scss │ │ ├── _stretched-link.scss │ │ ├── _sizing.scss │ │ ├── _position.scss │ │ ├── _display.scss │ │ ├── _embed.scss │ │ ├── _borders.scss │ │ ├── _text.scss │ │ ├── _spacing.scss │ │ └── _flex.scss │ ├── _media.scss │ ├── mixins │ │ ├── _clearfix.scss │ │ ├── _size.scss │ │ ├── _lists.scss │ │ ├── _text-truncate.scss │ │ ├── _visibility.scss │ │ ├── _resize.scss │ │ ├── _alert.scss │ │ ├── _nav-divider.scss │ │ ├── _text-hide.scss │ │ ├── _badge.scss │ │ ├── _transition.scss │ │ ├── _text-emphasis.scss │ │ ├── _float.scss │ │ ├── _list-group.scss │ │ ├── _reset-text.scss │ │ ├── _pagination.scss │ │ ├── _background-variant.scss │ │ ├── _box-shadow.scss │ │ ├── _deprecate.scss │ │ ├── _screen-reader.scss │ │ ├── _hover.scss │ │ ├── _table-row.scss │ │ ├── _image.scss │ │ ├── _border-radius.scss │ │ ├── _caret.scss │ │ ├── _grid.scss │ │ ├── _grid-framework.scss │ │ ├── _gradients.scss │ │ └── _buttons.scss │ ├── _transitions.scss │ ├── bootstrap-reboot.scss │ ├── _jumbotron.scss │ ├── _utilities.scss │ ├── _root.scss │ ├── bootstrap-grid.scss │ ├── _close.scss │ ├── _toasts.scss │ ├── static │ │ └── images │ │ │ └── link-arrow.svg │ ├── _code.scss │ ├── bootstrap.scss │ ├── _grid.scss │ ├── _progress.scss │ ├── _mixins.scss │ ├── _spinners.scss │ ├── _images.scss │ ├── _badge.scss │ ├── _alert.scss │ ├── _breadcrumb.scss │ ├── _pagination.scss │ ├── _functions.scss │ ├── _type.scss │ ├── _tooltip.scss │ ├── _nav.scss │ ├── _print.scss │ ├── _button-group.scss │ └── _list-group.scss └── js │ └── src │ ├── index.js │ └── tools │ └── sanitizer.js ├── conf ├── gunicorn.socket ├── gunicorn.service └── nginx.conf ├── requirements.txt ├── .isort.cfg ├── manage.py ├── Pipfile ├── .editorconfig ├── .gitignore ├── Dockerfile ├── package.json └── README.md /.nvmrc: -------------------------------------------------------------------------------- 1 | 10.15.3 2 | -------------------------------------------------------------------------------- /flex/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /home/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /menus/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /contact/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /rocketman/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /services/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /streams/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /flex/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /home/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /menus/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /site_settings/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /testimonials/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /contact/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /rocketman/settings/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /services/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /streams/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /site_settings/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /testimonials/migrations/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["@babel/preset-env"] 3 | } 4 | -------------------------------------------------------------------------------- /dev.txt: -------------------------------------------------------------------------------- 1 | -r requirements.txt 2 | django-debug-toolbar==2.1 3 | pudb==2019.2 4 | -------------------------------------------------------------------------------- /frontend/scss/utilities/_clearfix.scss: -------------------------------------------------------------------------------- 1 | .clearfix { 2 | @include clearfix(); 3 | } 4 | -------------------------------------------------------------------------------- /flex/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class FlexConfig(AppConfig): 5 | name = 'flex' 6 | -------------------------------------------------------------------------------- /menus/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class MenusConfig(AppConfig): 5 | name = 'menus' 6 | -------------------------------------------------------------------------------- /contact/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class ContactConfig(AppConfig): 5 | name = 'contact' 6 | -------------------------------------------------------------------------------- /rocketman/static/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodingForEverybody/rocketman/HEAD/rocketman/static/images/logo.png -------------------------------------------------------------------------------- /services/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class ServicesConfig(AppConfig): 5 | name = 'services' 6 | -------------------------------------------------------------------------------- /streams/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class StreamsConfig(AppConfig): 5 | name = 'streams' 6 | -------------------------------------------------------------------------------- /frontend/scss/_media.scss: -------------------------------------------------------------------------------- 1 | .media { 2 | display: flex; 3 | align-items: flex-start; 4 | } 5 | 6 | .media-body { 7 | flex: 1; 8 | } 9 | -------------------------------------------------------------------------------- /rocketman/static/images/facebook-og.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodingForEverybody/rocketman/HEAD/rocketman/static/images/facebook-og.png -------------------------------------------------------------------------------- /rocketman/static/images/twitter-og.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodingForEverybody/rocketman/HEAD/rocketman/static/images/twitter-og.png -------------------------------------------------------------------------------- /site_settings/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class SiteSettingsConfig(AppConfig): 5 | name = 'site_settings' 6 | -------------------------------------------------------------------------------- /testimonials/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class TestimonialsConfig(AppConfig): 5 | name = 'testimonials' 6 | -------------------------------------------------------------------------------- /rocketman/static/images/grey-pattern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodingForEverybody/rocketman/HEAD/rocketman/static/images/grey-pattern.png -------------------------------------------------------------------------------- /rocketman/static/images/contact-overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CodingForEverybody/rocketman/HEAD/rocketman/static/images/contact-overlay.png -------------------------------------------------------------------------------- /frontend/scss/mixins/_clearfix.scss: -------------------------------------------------------------------------------- 1 | @mixin clearfix() { 2 | &::after { 3 | display: block; 4 | clear: both; 5 | content: ""; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /conf/gunicorn.socket: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=gunicorn socket 3 | 4 | [Socket] 5 | ListenStream=/run/gunicorn.sock 6 | 7 | [Install] 8 | WantedBy=sockets.target 9 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | Django==2.2.10 2 | wagtail==2.8 3 | django-extensions==2.2.1 4 | django-widget-tweaks==1.4.5 5 | sentry-sdk==0.13.5 6 | django-debug-toolbar==2.2 7 | -------------------------------------------------------------------------------- /.isort.cfg: -------------------------------------------------------------------------------- 1 | [settings] 2 | indent=' ' 3 | multi_line_output=5 4 | known_django=django 5 | sections=FUTURE,STDLIB,DJANGO,THIRDPARTY,FIRSTPARTY,LOCALFOLDER 6 | skip=migrations 7 | -------------------------------------------------------------------------------- /frontend/scss/utilities/_overflow.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | @each $value in $overflows { 4 | .overflow-#{$value} { overflow: $value !important; } 5 | } 6 | -------------------------------------------------------------------------------- /frontend/scss/mixins/_size.scss: -------------------------------------------------------------------------------- 1 | // Sizing shortcuts 2 | 3 | @mixin size($width, $height: $width) { 4 | width: $width; 5 | height: $height; 6 | @include deprecate("`size()`", "v4.3.0", "v5"); 7 | } 8 | -------------------------------------------------------------------------------- /frontend/scss/utilities/_screenreaders.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Screenreaders 3 | // 4 | 5 | .sr-only { 6 | @include sr-only(); 7 | } 8 | 9 | .sr-only-focusable { 10 | @include sr-only-focusable(); 11 | } 12 | -------------------------------------------------------------------------------- /frontend/scss/mixins/_lists.scss: -------------------------------------------------------------------------------- 1 | // Lists 2 | 3 | // Unstyled keeps list items block level, just removes default browser padding and list-style 4 | @mixin list-unstyled { 5 | padding-left: 0; 6 | list-style: none; 7 | } 8 | -------------------------------------------------------------------------------- /frontend/scss/mixins/_text-truncate.scss: -------------------------------------------------------------------------------- 1 | // Text truncate 2 | // Requires inline-block or block for proper styling 3 | 4 | @mixin text-truncate() { 5 | overflow: hidden; 6 | text-overflow: ellipsis; 7 | white-space: nowrap; 8 | } 9 | -------------------------------------------------------------------------------- /frontend/scss/mixins/_visibility.scss: -------------------------------------------------------------------------------- 1 | // stylelint-disable declaration-no-important 2 | 3 | // Visibility 4 | 5 | @mixin invisible($visibility) { 6 | visibility: $visibility !important; 7 | @include deprecate("`invisible()`", "v4.3.0", "v5"); 8 | } 9 | -------------------------------------------------------------------------------- /frontend/scss/mixins/_resize.scss: -------------------------------------------------------------------------------- 1 | // Resize anything 2 | 3 | @mixin resizable($direction) { 4 | overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible` 5 | resize: $direction; // Options: horizontal, vertical, both 6 | } 7 | -------------------------------------------------------------------------------- /rocketman/templates/404.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block body_class %}template-404{% endblock %} 4 | 5 | {% block content %} 6 |
7 | {% endblock branding_logo %}
8 | {% endcomment %}
9 |
--------------------------------------------------------------------------------
/rocketman/templates/streams/simple_richtext_block.html:
--------------------------------------------------------------------------------
1 |
2 | 7 | — {{ self.attribution }} 8 |
9 |10 | {{ page.description }} 11 |
12 | 13 | {% if page.internal_page or page.external_page %} 14 | 15 | {{ page.button_text }} 16 | 17 | {% endif %} 18 |{{ page.subtitle }}
11 | {% endif %} 12 |{{ card.text }}
21 | {% endif %} 22 | {% if card.link.url %}{% endif %} 23 | 24 |25 | {% if card.link.url %}{% endif %} 26 | {{ card.link.link_text }} 27 | {% if card.link.url %}{% endif %} 28 |
29 | 30 |24 | {{ self.text }} 25 |
26 | {% endif %} 27 | 28 | {% if self.link.url %} 29 | 30 | {{ self.link.link_text }} 31 | 32 | {% endif %} 33 || 12 | {% if column.strip %} 13 | {% if html_renderer %} 14 | {{ column.strip|safe|linebreaksbr }} 15 | {% else %} 16 | {{ column.strip|linebreaksbr }} 17 | {% endif %} 18 | {% endif %} 19 | | 20 | {% endwith %} 21 | {% endfor %} 22 ||
|---|---|
| 0 %} class="text-center"{% endif %} {% cell_classname row_index col_index table_header %}> 33 | {% if column.strip %} 34 | {% if html_renderer %} 35 | {{ column.strip|safe|linebreaksbr }} 36 | {% else %} 37 | {{ column.strip|linebreaksbr }} 38 | {% endif %} 39 | {% endif %} 40 | | 41 | {% else %} 42 |0 %} class="text-center"{% endif %} {% cell_classname row_index col_index table_header %}> 43 | {% if column.strip %} 44 | {% if html_renderer %} 45 | {{ column.strip|safe|linebreaksbr }} 46 | {% else %} 47 | {{ column.strip|linebreaksbr }} 48 | {% endif %} 49 | {% endif %} 50 | | 51 | {% endif %} 52 | {% endwith %} 53 | {% endfor %} 54 |