diff --git a/project/index_blocks/cms_plugins.py b/project/index_blocks/cms_plugins.py
index 027bbd9..76c7b8b 100644
--- a/project/index_blocks/cms_plugins.py
+++ b/project/index_blocks/cms_plugins.py
@@ -1,8 +1,9 @@
#-*- coding: utf -8-*-
from cms.plugin_base import CMSPluginBase
from cms.plugin_pool import plugin_pool
-from models import IndexBlockPlugin, ExtendedTextBlockPlugin, ExtendedBlockPlugin
-from forms import IndexBlockForm, ExtendedBlockForm
+from models import IndexBlockPlugin, ExtendedTextBlockPlugin, ExtendedBlockPlugin, DescTextBlockPlugin
+from forms import IndexBlockForm, ExtendedBlockForm, ExtendedTextBlockForm, DescBlockForm
+from project.myauth.forms import RegistrationForm
from django.utils.translation import ugettext as _
@@ -22,7 +23,7 @@ class CMSIndexBlockPlugin(CMSPluginBase):
class CMSExtendedTextBlockPlugin(CMSPluginBase):
model = ExtendedTextBlockPlugin
- form = ExtendedBlockForm
+ form = ExtendedTextBlockForm
name = u'Раскрывающийся блок'
render_template = "extended_text_block.html"
@@ -48,6 +49,20 @@ class CMSExtendedBlockPlugin(CMSPluginBase):
return context
+class CMSDescTextBlockPlugin(CMSPluginBase):
+ model = DescTextBlockPlugin
+ form = ExtendedBlockForm
+ name = u'Заголовок/описание'
+ render_template = "desc_block.html"
+
+ def render(self, context, instance, placeholder):
+ context.update({
+ 'object':instance,
+ 'placeholder':placeholder
+ })
+ return context
+
+
class CMSSlideshowBlockPlugin(CMSPluginBase):
model = IndexBlockPlugin
form = IndexBlockForm
@@ -65,4 +80,5 @@ class CMSSlideshowBlockPlugin(CMSPluginBase):
plugin_pool.register_plugin(CMSExtendedTextBlockPlugin)
# plugin_pool.register_plugin(CMSIndexBlockPlugin)
plugin_pool.register_plugin(CMSExtendedBlockPlugin)
+plugin_pool.register_plugin(CMSDescTextBlockPlugin)
# plugin_pool.register_plugin(CMSSlideshowBlockPlugin)
diff --git a/project/index_blocks/forms.py b/project/index_blocks/forms.py
index 9a7e572..b39f373 100644
--- a/project/index_blocks/forms.py
+++ b/project/index_blocks/forms.py
@@ -1,27 +1,32 @@
from django.forms.models import ModelForm
-from .models import IndexBlockPlugin, ExtendedBlockPlugin
+from .models import IndexBlockPlugin, ExtendedTextBlockPlugin, ExtendedBlockPlugin, DescTextBlockPlugin
from django import forms
class IndexBlockForm(ModelForm):
- #description = forms.CharField()
class Meta:
model = IndexBlockPlugin
- # widgets = {
- # 'description': TinyMCE(attrs={'cols': 80, 'rows': 10}),
- # }
+ exclude = ('page', 'position', 'placeholder', 'language', 'plugin_type')
+
+
+class ExtendedTextBlockForm(ModelForm):
+
+ class Meta:
+ model = ExtendedTextBlockPlugin
exclude = ('page', 'position', 'placeholder', 'language', 'plugin_type')
class ExtendedBlockForm(ModelForm):
- #description = forms.CharField()
class Meta:
model = ExtendedBlockPlugin
- # widgets = {
- # 'description': TinyMCE(attrs={'cols': 80, 'rows': 10}),
- # 'extended_description': TinyMCE(attrs={'cols': 80, 'rows': 10}),
- # }
+ exclude = ('page', 'position', 'placeholder', 'language', 'plugin_type')
+
+
+class DescBlockForm(ModelForm):
+
+ class Meta:
+ model = ExtendedBlockPlugin
exclude = ('page', 'position', 'placeholder', 'language', 'plugin_type')
diff --git a/project/index_blocks/migrations/0006_auto__add_desctextblockplugin.py b/project/index_blocks/migrations/0006_auto__add_desctextblockplugin.py
new file mode 100644
index 0000000..d871c77
--- /dev/null
+++ b/project/index_blocks/migrations/0006_auto__add_desctextblockplugin.py
@@ -0,0 +1,78 @@
+# -*- coding: utf-8 -*-
+from south.utils import datetime_utils as datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+
+class Migration(SchemaMigration):
+
+ def forwards(self, orm):
+ # Adding model 'DescTextBlockPlugin'
+ db.create_table(u'index_blocks_desctextblockplugin', (
+ (u'cmsplugin_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['cms.CMSPlugin'], unique=True, primary_key=True)),
+ ('title', self.gf('django.db.models.fields.CharField')(max_length=100)),
+ ('description', self.gf('django.db.models.fields.TextField')()),
+ ))
+ db.send_create_signal(u'index_blocks', ['DescTextBlockPlugin'])
+
+
+ def backwards(self, orm):
+ # Deleting model 'DescTextBlockPlugin'
+ db.delete_table(u'index_blocks_desctextblockplugin')
+
+
+ models = {
+ 'cms.cmsplugin': {
+ 'Meta': {'object_name': 'CMSPlugin'},
+ 'changed_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'language': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}),
+ 'level': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
+ 'lft': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.CMSPlugin']", 'null': 'True', 'blank': 'True'}),
+ 'placeholder': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['cms.Placeholder']", 'null': 'True'}),
+ 'plugin_type': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}),
+ 'position': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'rght': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'}),
+ 'tree_id': ('django.db.models.fields.PositiveIntegerField', [], {'db_index': 'True'})
+ },
+ 'cms.placeholder': {
+ 'Meta': {'object_name': 'Placeholder'},
+ 'default_width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'slot': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'})
+ },
+ u'index_blocks.desctextblockplugin': {
+ 'Meta': {'object_name': 'DescTextBlockPlugin', '_ormbases': ['cms.CMSPlugin']},
+ u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ },
+ u'index_blocks.extendedblockplugin': {
+ 'Meta': {'object_name': 'ExtendedBlockPlugin', '_ormbases': ['cms.CMSPlugin']},
+ u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {}),
+ 'extended_description': ('django.db.models.fields.TextField', [], {}),
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ },
+ u'index_blocks.extendedtextblockplugin': {
+ 'Meta': {'object_name': 'ExtendedTextBlockPlugin', '_ormbases': ['cms.CMSPlugin']},
+ u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}),
+ 'description': ('djangocms_text_ckeditor.fields.HTMLField', [], {}),
+ 'extended_description': ('djangocms_text_ckeditor.fields.HTMLField', [], {}),
+ 'order': ('django.db.models.fields.PositiveIntegerField', [], {'default': '1'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ },
+ u'index_blocks.indexblockplugin': {
+ 'Meta': {'object_name': 'IndexBlockPlugin', '_ormbases': ['cms.CMSPlugin']},
+ u'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {}),
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ }
+ }
+
+ complete_apps = ['index_blocks']
\ No newline at end of file
diff --git a/project/index_blocks/models.py b/project/index_blocks/models.py
index f095c95..d54a2d7 100644
--- a/project/index_blocks/models.py
+++ b/project/index_blocks/models.py
@@ -9,6 +9,11 @@ class IndexBlockPlugin(CMSPlugin):
description = models.TextField()
+class DescTextBlockPlugin(CMSPlugin):
+ title = models.CharField(max_length=100)
+ description = models.TextField()
+
+
class ExtendedTextBlockPlugin(CMSPlugin):
order = models.PositiveIntegerField(default=1)
title = models.CharField(max_length=100)
diff --git a/project/index_blocks/templates/desc_block.html b/project/index_blocks/templates/desc_block.html
new file mode 100644
index 0000000..797eaf5
--- /dev/null
+++ b/project/index_blocks/templates/desc_block.html
@@ -0,0 +1,11 @@
+{% load thumbnail %}
+
%(image)s"
+CAPTCHA_OUTPUT_FORMAT = u"%(hidden_field)s %(image)s
%(text_field)s"
+CAPTCHA_FONT_SIZE = 36
CKEDITOR_SETTINGS = {
'language': '',
'skin': 'moono',
diff --git a/project/static/css/style.css b/project/static/css/style.css
index c4bf659..ce21555 100644
--- a/project/static/css/style.css
+++ b/project/static/css/style.css
@@ -73,7 +73,9 @@ body {
.auth_block {margin-top:30px;}
.login, .register {display:block;padding-left:34px;margin: 0 3px;height:36px;text-decoration:none;font-family:Arial,Helvetica,sans-serif;color:#36393f; line-height:36px;}
.login {background: url(../img/login-yellow.png) no-repeat left center;}
+.login_active {background: url(../img/login-black.png) no-repeat left center;}
.register {background: url(../img/register-yellow.png) no-repeat left center;}
+.register_active {background: url(../img/register-black.png) no-repeat left center;}
.index-banner-text {height:551px;width:800px;color:#fff;font-size:24px;font-family:"MyriadProRegular";position:relative;overflow:hidden;}
.index-banner-text h1 {font-size:48px;}
@@ -113,6 +115,108 @@ body {
#index-yellow-banner .btn {width:400px;height:75px;margin-top:57px;}
#index-yellow-banner .btn a {width:400px;height:75px;background:#313942;display:table-cell;vertical-align:middle;text-align:center;text-transform:uppercase;text-decoration:none;color:#fff;font-size:22px;}
+.login-page {margin:64px auto;width:514px;padding:20px;background:#fff;box-shadow: 0 0 5px #ddd;}
+.register-arrow {width:300px;height:100px;background:url(../img/black_arrow.png) no-repeat center center;position:absolute;left:50%;top:340px;margin-left:300px;color:#fff;padding: 20px 0 0 0;font-style:italic;text-align:center;font-size:16px;}
+.register-arrow p {margin:5px;}
+
+.auth-form .field input[type="text"], .auth-form .field input[type="email"], .auth-form .field input[type="password"]{width:300px;vertical-align:bottom;height:50px;margin-top:32px;}
+.auth-form .field input[type="checkbox"] {height:20px;width:20px;vertical-align:middle;height:50px;}
+.auth-form .field#captcha input[type="text"] {width:130px;height:50px;}
+.auth-form .field label {display:inline-block;width:200px;text-align:right;line-height:50px;padding-right:5px;vertical-align:middle;}
+.auth-form .field#profile_type label {width:200px;vertical-align:middle;height:50px;}
+.auth-form .field #id_register-profile_type {float:right;margin-top:15px;}
+.auth-form .field #id_register-profile_type label {width:300px;font-size:13px;line-height:20px;vertical-align:bottom;height:30px;text-align:left;}
+.auth-form .field img {vertical-align:middle;}
+
+.auth-form .buttons {text-align:center;margin-top:45px;}
+.auth-form .buttons input[type="submit"]{background:#fed13e;border:none;font-size:22px;padding:15px 40px;color:#4e5661;font-family:"Arial Narrow", Arial, sans-serif;font-weight:bold;}
+.auth-form .captcha_refresh {display:inline-block;margin: 0 10px;width:24px;}
+
+.register-form {margin:0 46px 64px 0;width:514px;padding:20px;background:#fff;box-shadow: 0 0 5px #ddd;float:left;}
+
+.register_desc h2 {margin:0;}
+#why_register {margin-bottom:260px;position:relative;}
+#prices-block {overflow:hidden;width:100%;height:146px;margin-top:20px;}
+.price-block {float:left;width:144px;height:116px;margin-right:8px;}
+#prices-block .price-block:last-child {margin-right:0;}
+.price-block .price-header {
+ height: 34px;
+ width:144px;
+ border-radius: 15px 15px 0 0;
+ background: #313942; /* Old browsers */
+ background: -moz-linear-gradient(left, #313942 0%, #7f848a 100%); /* FF3.6+ */
+ background: -webkit-gradient(linear, left top, right top, color-stop(0%,#313942), color-stop(100%,#7f848a)); /* Chrome,Safari4+ */
+ background: -webkit-linear-gradient(left, #313942 0%,#7f848a 100%); /* Chrome10+,Safari5.1+ */
+ background: -o-linear-gradient(left, #313942 0%,#7f848a 100%); /* Opera 11.10+ */
+ background: -ms-linear-gradient(left, #313942 0%,#7f848a 100%); /* IE10+ */
+ background: linear-gradient(to right, #313942 0%,#7f848a 100%); /* W3C */
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#313942', endColorstr='#7f848a',GradientType=1 ); /* IE6-9 */
+ font-weight: bold;
+ font-size: 20px;
+ line-height: 34px;
+ color: #fff;
+ text-align:center;
+}
+
+
+.price-block .price-content {
+ position:relative;
+ border-radius: 0 0 15px 15px;
+ border: 1px solid #cfcfcf;
+ border-top:none;
+ height: 82px;
+ width:142px;
+ text-align:center;
+ font-size:44px;
+ font-family:"MyriadPro-Light";
+ line-height:93px;
+ color:#313942;
+ background: #fbfbfb; /* Old browsers */
+ background: -moz-linear-gradient(top, #fbfbfb 0%, #ededed 100%); /* FF3.6+ */
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#fbfbfb), color-stop(100%,#ededed)); /* Chrome,Safari4+ */
+ background: -webkit-linear-gradient(top, #fbfbfb 0%,#ededed 100%); /* Chrome10+,Safari5.1+ */
+ background: -o-linear-gradient(top, #fbfbfb 0%,#ededed 100%); /* Opera 11.10+ */
+ background: -ms-linear-gradient(top, #fbfbfb 0%,#ededed 100%); /* IE10+ */
+ background: linear-gradient(to bottom, #fbfbfb 0%,#ededed 100%); /* W3C */
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fbfbfb', endColorstr='#ededed',GradientType=0 ); /* IE6-9 */
+}
+
+.price-block .price-triangle{
+ position:absolute;
+ top:0;
+ right:0;
+ width: 0;
+ height: 0;
+ border-style: solid;
+ border-width: 0 54px 54px 0;
+ border-color: transparent #fed13e transparent transparent;
+}
+.price-block .price-discount {
+ position:absolute;
+ top:0;
+ right:0;
+ width:54px;
+ height:54px;
+ padding:5px 5px 0 0;
+}
+.price-block .price-discount span{
+ font-size:18px;
+ font-family:'MyriadProRegular';
+ font-weight:bold;
+ display:block;
+ height:18px;
+ line-height:18px;
+ width:54px;
+ padding:0;
+ margin:0;
+ text-align:right;
+}
+
+.desc-block {width:600px;height:30px;overflow:visible;cursor:pointer;box-sizing:border-box;}
+.desc-block-text a {font-size:15px;line-height:15px;}
+.desc-block-more {font-size:14px;line-height:14px;margin:0;background:#272b31;position:absolute;left:320px;top:0;width:275px;height:100%;box-sizing:border-box;padding:20px;color:#fff;font-style:italic;}
+.desc-triangle {background: url(../img/triangle2.png) no-repeat center center;width:11px;height:25px;position:relative;left:309px;top:-12px;}
+
.db {display:block;}
a { color: #498dd0; cursor: pointer; text-decoration: underline; }
a img { outline: none; border: 0; }
@@ -142,8 +246,9 @@ ul.messagelist li.error { background-image: url(../img/icon-error.gif); }
.help-text { font-size: 8pt; color: #666666; }
form { font-size: small; padding: 0; margin: 0; }
+form label {font-style:italic;font-size:16px;}
-input, select, textarea { font-family: Arial,Helvetica,sans-serif; font-size: small; }
+input, select, textarea { font-family: Arial,Helvetica,sans-serif; font-size: 46px;line-height:46px; background:#f8f8f8;background:#f8f8f8;}
fieldset {
padding: 0 0 10px;
@@ -158,7 +263,6 @@ input[type=text], input[type=password], textarea, option { padding-left: 2px; ma
.long-input input { width: 350px; }
-.field { margin: 10px 0; }
.block { margin: 10px 0; }
.client-form .col1 { float: left; width: 350px; }
@@ -334,7 +438,7 @@ div.blockMsg { width: 100%; height: 100%; top: 0; left: 0; text-align: center; }
#footer-content a {margin-right: 150px;}
.footer-text {position:relative;padding:25px 0 10px 0;color:#fff;}
-#menu {width: 100%;height:50px;}
+#menu {width: 100%;height:50px;position:relative;overflow:visible;}
#menu ul li {display:table-cell;height:50px;background:#313942;font-family:"Arial Narrow", Arial, sans-serif;font-size:16px;vertical-align:middle;border-right:solid 1px #272b31;border-left: solid 1px #434a52}
#menu ul li.yellow {background:#fed13e;}
#menu ul li.yellow a, #menu ul li.yellow span {color:#313942;}
@@ -343,6 +447,8 @@ div.blockMsg { width: 100%; height: 100%; top: 0; left: 0; text-align: center; }
#menu ul li a {color:#fff;}
#menu ul li span{color:#fed13e;}
#menu ul li.selected{background:url('../img/menu-selected.png') #313942 no-repeat bottom center; }
+#menu .other_docs_menu {position:absolute;top:50px;z-index:50;}
+#menu .other_docs_menu li {display:block;}
.preview {width:780px;height:500px;overflow:scroll;float:left;}
.list-col2 {float: left; width: 180px; margin-left: 16px; padding: 0 10px 10px 10px; border-left: solid 1px #797979;}
diff --git a/project/static/img/black_arrow.png b/project/static/img/black_arrow.png
new file mode 100644
index 0000000..2c6dd12
Binary files /dev/null and b/project/static/img/black_arrow.png differ
diff --git a/project/static/img/refresh.png b/project/static/img/refresh.png
index d510628..642293e 100644
Binary files a/project/static/img/refresh.png and b/project/static/img/refresh.png differ
diff --git a/project/static/img/register-black.png b/project/static/img/register-black.png
new file mode 100644
index 0000000..dfd1a0f
Binary files /dev/null and b/project/static/img/register-black.png differ
diff --git a/project/static/img/triangle2.png b/project/static/img/triangle2.png
new file mode 100644
index 0000000..14f11d9
Binary files /dev/null and b/project/static/img/triangle2.png differ
diff --git a/project/static/js/commons.js b/project/static/js/commons.js
index e58a006..f337c45 100644
--- a/project/static/js/commons.js
+++ b/project/static/js/commons.js
@@ -1,6 +1,7 @@
$(document).ready(function() {
$('.has-datepicker').datepicker({dateFormat: 'dd.mm.yy'});
- $('.extended-block').click(function(){
+ $('.extended-block').click(function(e){
+ e.preventDefault();
$('.extended-block').removeClass('active');
$('.extended-block-more').hide();
$('.extended-triangle').hide();
@@ -8,6 +9,24 @@ $(document).ready(function() {
$(this).find('.extended-triangle').show();
$(this).addClass('active');
});
+ $('.desc-block').click(function(e){
+ e.preventDefault();
+ $('.desc-block').removeClass('active');
+ $('.desc-block-more').hide();
+ $('.desc-triangle').hide();
+ $(this).find('.desc-block-more').show();
+ $(this).find('.desc-triangle').show();
+ $(this).addClass('active');
+ });
+ $('#other_docs').mouseover(function(e){
+ $('.other_docs_menu').show();
+ });
+ $('.other_docs_menu').mouseout(function(e){
+ $('.other_docs_menu').hide();
+ });
+ $('#other_docs').mouseout(function(e){
+ $('.other_docs_menu').hide();
+ });
$('.close-message').click(function(e){
e.preventDefault();
$(this).closest('li').hide();
diff --git a/project/templates/base.html b/project/templates/base.html
index 2b8a8bf..f143f05 100644
--- a/project/templates/base.html
+++ b/project/templates/base.html
@@ -1,5 +1,8 @@
{# spaceless #}
{% load cms_tags sekizai_tags menu_tags %}
+{% url 'myauth_login' as myauth_login %}
+{% url 'myauth_register' as myauth_register %}
+
Вы уже авторизованы. Выйти?
{% else %} {% include 'myauth/login_form.html' %} {% endif %} +{{ form.non_field_errors }}
{% endif %} @@ -14,7 +14,6 @@Вы уже авторизованы. Выйти?
{% else %} {% include 'myauth/register_form.html' %} +Для всех новых пользователей, без каких-либо ограничений в возможностях сайта.
+{{ form.non_field_errors }}
{% endif %} @@ -14,16 +14,11 @@