Skip to content

Instantly share code, notes, and snippets.

@ToroNZ
Created April 1, 2017 06:59
Show Gist options
  • Save ToroNZ/3cc490c53427f958e0a670b0a6bf252e to your computer and use it in GitHub Desktop.
Save ToroNZ/3cc490c53427f958e0a670b0a6bf252e to your computer and use it in GitHub Desktop.
Get FeinCMS running on Centos7
* How to install
sudo yum install epel-release git
sudo yum install python-devel python-setuptools python-pip
sudo pip install --upgrade pip
sudo pip install virtualenv
virtualenv magnateenv
source ~/magnateenv/bin/activate
pip install django
pip install feincms
pip install psycopg2
django-admin.py startproject magnate_app
cd magnate_app
python manage.py startapp cms
nano magnate_app/settings.py
# To this:
INSTALLED_APPS = (
# FeinCMS:
'feincms',
'feincms.module.page',
'feincms.module.medialibrary',
'cms',
# Django Standard:
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
)
TEMPLATE_CONTEXT_PROCESSORS = (
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'django.core.context_processors.i18n',
'django.core.context_processors.request',
'django.core.context_processors.media',
'django.core.context_processors.static',
)
# PostgreSQL example:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'magnatedb_dev',
'USER': 'postgres',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': '5432',
}
}
TEMPLATE_DIRS = (
# List of template directories.
# Example:
os.path.join(BASE_DIR, 'templates'),
)
-----------------------------------------------------------------
nano feincms_app/urls.py
# To this:
import os
from django.conf.urls import patterns, include, url
from django.conf.urls.i18n import i18n_patterns
from django.contrib import admin
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
admin.autodiscover()
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {
'document_root': os.path.join(os.path.dirname(__file__), 'media/')}),
url(r'', include('feincms.contrib.preview.urls')),
url(r'', include('feincms.urls'))
) + staticfiles_urlpatterns()
-----------------------------------------------------------------
nano cms/models.py
# To this:
from feincms.module.page.models import Page
from django.utils.translation import ugettext_lazy as _
from feincms.content.richtext.models import RichTextContent
Page.register_templates({
'title': _('General FeinCMS Template Example'),
'path': 'template1.html',
'regions': (
('header', _('Page header.')),
('main', _('Main content area.')),
('sidebar', _('Sidebar'), 'inherited'),
('footer', _('Page footer.')),
),
})
Page.create_content_type(RichTextContent)
-----------------------------------------------------------------
deactivate
#cd magnate
#git clone https://github.com/ToroNZ/Magnate.git
sudo rpm -Uvh https://yum.postgresql.org/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
sudo yum install postgresql96-server postgresql96 postgresql96-devel
sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb
sudo systemctl start postgresql-9.6
sudo systemctl enable postgresql-9.6
source ~/magnateenv/bin/activate
python manage.py syncdb
# You just installed Django's auth system,
# which means you don't have any superusers defined.
# Would you like to create one now? (yes/no):
yes
# ^^ Create an admin account by answering the questions.
# For testing purposes you can opt for:
# Username: admin
# Password: admin
mkdir magnate_app/templates
nano magnate_app/templates/template1.html
# Paste this:
<div id="header">
{% block header %}
{% for content in feincms_page.content.header %}
{{ content.render }}
{% endfor %}
{% endblock %}
</div>
<div id="content">
{% block content %}
{% for content in feincms_page.content.main %}
{{ content.render }}
{% endfor %}
{% endblock %}
</div>
<div id="sidebar">
{% block sidebar %}
{% for content in feincms_page.content.sidebar %}
{{ content.render }}
{% endfor %}
{% endblock %}
</div>
<div id="footer">
{% block footer %}
{% for content in feincms_page.content.footer %}
{{ content.render }}
{% endfor %}
{% endblock %}
</div>
----------------------------------------------------------
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment