diff --git a/project/index_blocks/__init__.py b/project/index_blocks/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/project/index_blocks/cms_plugins.py b/project/index_blocks/cms_plugins.py new file mode 100644 index 0000000..027bbd9 --- /dev/null +++ b/project/index_blocks/cms_plugins.py @@ -0,0 +1,68 @@ +#-*- 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 django.utils.translation import ugettext as _ + + +class CMSIndexBlockPlugin(CMSPluginBase): + model = IndexBlockPlugin + form = IndexBlockForm + name = u'Блок на главной (картинка и текст)' + render_template = "index_block.html" + + def render(self, context, instance, placeholder): + context.update({ + 'object':instance, + 'placeholder':placeholder + }) + return context + + +class CMSExtendedTextBlockPlugin(CMSPluginBase): + model = ExtendedTextBlockPlugin + form = ExtendedBlockForm + name = u'Раскрывающийся блок' + render_template = "extended_text_block.html" + + def render(self, context, instance, placeholder): + context.update({ + 'object':instance, + 'placeholder':placeholder + }) + return context + + +class CMSExtendedBlockPlugin(CMSPluginBase): + model = ExtendedBlockPlugin + form = ExtendedBlockForm + name = u'Раскрывающийся блок с картинкой' + render_template = "extended_block.html" + + def render(self, context, instance, placeholder): + context.update({ + 'object':instance, + 'placeholder':placeholder + }) + return context + + +class CMSSlideshowBlockPlugin(CMSPluginBase): + model = IndexBlockPlugin + form = IndexBlockForm + name = u'Кадр слайдшоу' + render_template = "slideshow_block.html" + + def render(self, context, instance, placeholder): + context.update({ + 'object':instance, + 'placeholder':placeholder + }) + return context + + +plugin_pool.register_plugin(CMSExtendedTextBlockPlugin) +# plugin_pool.register_plugin(CMSIndexBlockPlugin) +plugin_pool.register_plugin(CMSExtendedBlockPlugin) +# plugin_pool.register_plugin(CMSSlideshowBlockPlugin) diff --git a/project/index_blocks/forms.py b/project/index_blocks/forms.py new file mode 100644 index 0000000..9a7e572 --- /dev/null +++ b/project/index_blocks/forms.py @@ -0,0 +1,27 @@ +from django.forms.models import ModelForm +from .models import IndexBlockPlugin, ExtendedBlockPlugin +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 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') + diff --git a/project/index_blocks/migrations/0001_initial.py b/project/index_blocks/migrations/0001_initial.py new file mode 100644 index 0000000..32ecd7b --- /dev/null +++ b/project/index_blocks/migrations/0001_initial.py @@ -0,0 +1,55 @@ +# encoding: utf-8 +import 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 'IndexBlockPlugin' + db.create_table('cmsplugin_indexblockplugin', ( + ('cmsplugin_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['cms.CMSPlugin'], unique=True, primary_key=True)), + ('image', self.gf('django.db.models.fields.files.ImageField')(max_length=100)), + ('description', self.gf('django.db.models.fields.TextField')(max_length=60)), + )) + db.send_create_signal('index_blocks', ['IndexBlockPlugin']) + + + def backwards(self, orm): + + # Deleting model 'IndexBlockPlugin' + db.delete_table('cmsplugin_indexblockplugin') + + + models = { + 'cms.cmsplugin': { + 'Meta': {'object_name': 'CMSPlugin'}, + 'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + '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'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) + }, + 'index_blocks.indexblockplugin': { + 'Meta': {'object_name': 'IndexBlockPlugin', 'db_table': "'cmsplugin_indexblockplugin'", '_ormbases': ['cms.CMSPlugin']}, + 'cmsplugin_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['cms.CMSPlugin']", 'unique': 'True', 'primary_key': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'max_length': '60'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100'}) + } + } + + complete_apps = ['index_blocks'] diff --git a/project/index_blocks/migrations/0002_auto__add_field_indexblockplugin_title__chg_field_indexblockplugin_des.py b/project/index_blocks/migrations/0002_auto__add_field_indexblockplugin_title__chg_field_indexblockplugin_des.py new file mode 100644 index 0000000..8473b17 --- /dev/null +++ b/project/index_blocks/migrations/0002_auto__add_field_indexblockplugin_title__chg_field_indexblockplugin_des.py @@ -0,0 +1,57 @@ +# encoding: utf-8 +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + +class Migration(SchemaMigration): + + def forwards(self, orm): + + # Adding field 'IndexBlockPlugin.title' + db.add_column('cmsplugin_indexblockplugin', 'title', self.gf('django.db.models.fields.CharField')(default='', max_length=100), keep_default=False) + + # Changing field 'IndexBlockPlugin.description' + db.alter_column('cmsplugin_indexblockplugin', 'description', self.gf('django.db.models.fields.TextField')()) + + + def backwards(self, orm): + + # Deleting field 'IndexBlockPlugin.title' + db.delete_column('cmsplugin_indexblockplugin', 'title') + + # Changing field 'IndexBlockPlugin.description' + db.alter_column('cmsplugin_indexblockplugin', 'description', self.gf('django.db.models.fields.TextField')(max_length=60)) + + + models = { + 'cms.cmsplugin': { + 'Meta': {'object_name': 'CMSPlugin'}, + 'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + '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'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) + }, + 'index_blocks.indexblockplugin': { + 'Meta': {'object_name': 'IndexBlockPlugin', 'db_table': "'cmsplugin_indexblockplugin'", '_ormbases': ['cms.CMSPlugin']}, + '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'] diff --git a/project/index_blocks/migrations/0003_auto__add_extendedblockplugin.py b/project/index_blocks/migrations/0003_auto__add_extendedblockplugin.py new file mode 100644 index 0000000..c0d249c --- /dev/null +++ b/project/index_blocks/migrations/0003_auto__add_extendedblockplugin.py @@ -0,0 +1,66 @@ +# encoding: utf-8 +import 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 'ExtendedBlockPlugin' + db.create_table('cmsplugin_extendedblockplugin', ( + ('cmsplugin_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['cms.CMSPlugin'], unique=True, primary_key=True)), + ('image', self.gf('django.db.models.fields.files.ImageField')(max_length=100)), + ('title', self.gf('django.db.models.fields.CharField')(max_length=100)), + ('description', self.gf('django.db.models.fields.TextField')()), + ('extended_description', self.gf('django.db.models.fields.TextField')()), + )) + db.send_create_signal('index_blocks', ['ExtendedBlockPlugin']) + + + def backwards(self, orm): + + # Deleting model 'ExtendedBlockPlugin' + db.delete_table('cmsplugin_extendedblockplugin') + + + models = { + 'cms.cmsplugin': { + 'Meta': {'object_name': 'CMSPlugin'}, + 'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + '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'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'slot': ('django.db.models.fields.CharField', [], {'max_length': '50', 'db_index': 'True'}) + }, + 'index_blocks.extendedblockplugin': { + 'Meta': {'object_name': 'ExtendedBlockPlugin', 'db_table': "'cmsplugin_extendedblockplugin'", '_ormbases': ['cms.CMSPlugin']}, + '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'}) + }, + 'index_blocks.indexblockplugin': { + 'Meta': {'object_name': 'IndexBlockPlugin', 'db_table': "'cmsplugin_indexblockplugin'", '_ormbases': ['cms.CMSPlugin']}, + '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'] diff --git a/project/index_blocks/migrations/0004_auto__add_extendedtextblockplugin.py b/project/index_blocks/migrations/0004_auto__add_extendedtextblockplugin.py new file mode 100644 index 0000000..0033e28 --- /dev/null +++ b/project/index_blocks/migrations/0004_auto__add_extendedtextblockplugin.py @@ -0,0 +1,72 @@ +# -*- 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 'ExtendedTextBlockPlugin' + db.create_table(u'index_blocks_extendedtextblockplugin', ( + (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')()), + ('extended_description', self.gf('django.db.models.fields.TextField')()), + )) + db.send_create_signal(u'index_blocks', ['ExtendedTextBlockPlugin']) + + + def backwards(self, orm): + # Deleting model 'ExtendedTextBlockPlugin' + db.delete_table(u'index_blocks_extendedtextblockplugin') + + + 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.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': ('django.db.models.fields.TextField', [], {}), + 'extended_description': ('django.db.models.fields.TextField', [], {}), + '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/migrations/0005_auto__add_field_extendedtextblockplugin_order__chg_field_extendedtextb.py b/project/index_blocks/migrations/0005_auto__add_field_extendedtextblockplugin_order__chg_field_extendedtextb.py new file mode 100644 index 0000000..0da8dc6 --- /dev/null +++ b/project/index_blocks/migrations/0005_auto__add_field_extendedtextblockplugin_order__chg_field_extendedtextb.py @@ -0,0 +1,81 @@ +# -*- 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 field 'ExtendedTextBlockPlugin.order' + db.add_column(u'index_blocks_extendedtextblockplugin', 'order', + self.gf('django.db.models.fields.PositiveIntegerField')(default=1), + keep_default=False) + + + # Changing field 'ExtendedTextBlockPlugin.extended_description' + db.alter_column(u'index_blocks_extendedtextblockplugin', 'extended_description', self.gf('djangocms_text_ckeditor.fields.HTMLField')()) + + # Changing field 'ExtendedTextBlockPlugin.description' + db.alter_column(u'index_blocks_extendedtextblockplugin', 'description', self.gf('djangocms_text_ckeditor.fields.HTMLField')()) + + def backwards(self, orm): + # Deleting field 'ExtendedTextBlockPlugin.order' + db.delete_column(u'index_blocks_extendedtextblockplugin', 'order') + + + # Changing field 'ExtendedTextBlockPlugin.extended_description' + db.alter_column(u'index_blocks_extendedtextblockplugin', 'extended_description', self.gf('django.db.models.fields.TextField')()) + + # Changing field 'ExtendedTextBlockPlugin.description' + db.alter_column(u'index_blocks_extendedtextblockplugin', 'description', self.gf('django.db.models.fields.TextField')()) + + 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.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/migrations/__init__.py b/project/index_blocks/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/project/index_blocks/models.py b/project/index_blocks/models.py new file mode 100644 index 0000000..f095c95 --- /dev/null +++ b/project/index_blocks/models.py @@ -0,0 +1,23 @@ +from django.db import models +from cms.models.pluginmodel import CMSPlugin +from djangocms_text_ckeditor.fields import HTMLField + + +class IndexBlockPlugin(CMSPlugin): + image = models.ImageField(upload_to="uploads/images/") + title = models.CharField(max_length=100) + description = models.TextField() + + +class ExtendedTextBlockPlugin(CMSPlugin): + order = models.PositiveIntegerField(default=1) + title = models.CharField(max_length=100) + description = HTMLField() + extended_description = HTMLField() + + +class ExtendedBlockPlugin(CMSPlugin): + image = models.ImageField(upload_to="uploads/images/") + title = models.CharField(max_length=100) + description = models.TextField() + extended_description = models.TextField() diff --git a/project/index_blocks/templates/extended_block.html b/project/index_blocks/templates/extended_block.html new file mode 100644 index 0000000..8cccef2 --- /dev/null +++ b/project/index_blocks/templates/extended_block.html @@ -0,0 +1,16 @@ +{% load thumbnail %} +
+
+ {% thumbnail object.image.name "190x132" crop="center" as img %} + +
+
+

{{ object.title }}

+ {{ object.description|safe }} +
+ +
+
diff --git a/project/index_blocks/templates/extended_text_block.html b/project/index_blocks/templates/extended_text_block.html new file mode 100644 index 0000000..04cf97b --- /dev/null +++ b/project/index_blocks/templates/extended_text_block.html @@ -0,0 +1,17 @@ +{% load thumbnail %} +
+
+
{{ object.order }}
+
+

{{ object.title }}

+ {{ object.description|safe }} +
+
+ +
+ +
diff --git a/project/index_blocks/templates/index_block.html b/project/index_blocks/templates/index_block.html new file mode 100644 index 0000000..5f790f1 --- /dev/null +++ b/project/index_blocks/templates/index_block.html @@ -0,0 +1,12 @@ +{% load thumbnail %} +
+
+ {% thumbnail object.image.name "250x110" crop="center" as img %} + + {% endthumbnail %} +
+
+

{{ object.title }}

+ {{ object.description|safe }} +
+
\ No newline at end of file diff --git a/project/index_blocks/templates/slideshow_block.html b/project/index_blocks/templates/slideshow_block.html new file mode 100644 index 0000000..146a1f6 --- /dev/null +++ b/project/index_blocks/templates/slideshow_block.html @@ -0,0 +1,10 @@ +{% load thumbnail %} +
  • + {% thumbnail object.image.name "650x450" crop="center" as img %} + + {% endthumbnail %} +
    + {% if object.title %}

    {{ object.title }}

    {% endif %} + {{ object.description|safe|default:'' }} +
    +
  • diff --git a/project/index_blocks/tests.py b/project/index_blocks/tests.py new file mode 100644 index 0000000..501deb7 --- /dev/null +++ b/project/index_blocks/tests.py @@ -0,0 +1,16 @@ +""" +This file demonstrates writing tests using the unittest module. These will pass +when you run "manage.py test". + +Replace this with more appropriate tests for your application. +""" + +from django.test import TestCase + + +class SimpleTest(TestCase): + def test_basic_addition(self): + """ + Tests that 1 + 1 always equals 2. + """ + self.assertEqual(1 + 1, 2) diff --git a/project/index_blocks/views.py b/project/index_blocks/views.py new file mode 100644 index 0000000..60f00ef --- /dev/null +++ b/project/index_blocks/views.py @@ -0,0 +1 @@ +# Create your views here. diff --git a/project/settings.py b/project/settings.py index 7898b6d..9b74345 100644 --- a/project/settings.py +++ b/project/settings.py @@ -73,7 +73,7 @@ STATIC_ROOT = path('../_public_html/static') # URL prefix for static files. # Example: "http://example.com/static/", "http://static.example.com/" -STATIC_URL = '/s/' +STATIC_URL = '/static/' # Additional locations of static files STATICFILES_DIRS = ( @@ -115,6 +115,7 @@ MIDDLEWARE_CLASSES = ( 'cms.middleware.user.CurrentUserMiddleware', 'cms.middleware.toolbar.ToolbarMiddleware', 'cms.middleware.language.LanguageCookieMiddleware', + 'djangocms_ckeditor_filer.middleware.ThumbnailMiddleware', # my 'project.customer.middleware.ProfileMiddleware', @@ -156,9 +157,9 @@ INSTALLED_APPS = ( # Uncomment the next line to enable the admin: 'pytils', - 'django_filters', + # 'sorl.thumbnail', + # 'django_filters', 'autocomplete_light', - 'cms', 'cms', # django CMS itself 'mptt', # utilities for implementing a modified pre-order traversal tree 'menus', # helper for model independent hierarchical website navigation @@ -167,6 +168,8 @@ INSTALLED_APPS = ( #'robokassa', 'djangocms_admin_style', # for the admin skin. You **must** add 'djangocms_admin_style' in the list before 'django.contrib.admin'. 'django.contrib.messages', # to enable messages framework (see :ref:`Enable messages `) + 'filer', + 'easy_thumbnails', 'djangocms_file', 'djangocms_flash', 'djangocms_googlemap', @@ -177,6 +180,13 @@ INSTALLED_APPS = ( 'djangocms_link', 'djangocms_snippet', 'djangocms_text_ckeditor', + 'cmsplugin_filer_file', + 'cmsplugin_filer_folder', + 'cmsplugin_filer_link', + 'cmsplugin_filer_image', + 'cmsplugin_filer_teaser', + 'cmsplugin_filer_video', + 'djangocms_ckeditor_filer', 'django.contrib.admin', 'django.contrib.admindocs', @@ -187,6 +197,7 @@ INSTALLED_APPS = ( 'project.docs', 'project.pages', 'project.callback', + 'project.index_blocks', # keep it last 'south', @@ -243,6 +254,8 @@ CMS_TEMPLATES = ( ('pages/inner_page.html', u'Внутренняя страница'), ) +CMS_PERMISSION = True + BROKER_HOST = "localhost" BROKER_PORT = 5672 BROKER_USER = "user" @@ -274,7 +287,35 @@ CELERYBEAT_SCHEDULE = { } CAPTCHA_OUTPUT_FORMAT = u"%(hidden_field)s%(text_field)s %(image)s" - +CKEDITOR_SETTINGS = { + 'language': '', + 'skin': 'moono', + 'toolbar': 'HTMLField', + 'toolbar_HTMLField': [ + ['Undo', 'Redo'], + ['ShowBlocks'], + ['Format', 'Styles'], + ['TextColor', 'BGColor', '-', 'PasteText', 'PasteFromWord'], + ['Maximize', ''], + '/', + ['Bold', 'Italic', 'Underline', '-', 'Subscript', 'Superscript', '-', 'RemoveFormat'], + ['JustifyLeft', 'JustifyCenter', 'JustifyRight'], + ['Link', 'Unlink'], + ['NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', '-', 'Table', 'Filer Image'], + ['Source'] + ], + 'extraPlugins': 'filerimage', + 'removePlugins': 'image' +} +TEXT_SAVE_IMAGE_FUNCTION = 'cmsplugin_filer_image.integrations.ckeditor.create_image_plugin' +THUMBNAIL_PROCESSORS = ( + 'easy_thumbnails.processors.colorspace', + 'easy_thumbnails.processors.autocrop', + #'easy_thumbnails.processors.scale_and_crop', + 'filer.thumbnail_processors.scale_and_crop_with_subject_location', + 'easy_thumbnails.processors.filters', +) + try: from project.local_settings import * except ImportError: diff --git a/project/static/ckeditor/plugins/filerimage/dialogs/filerImageDialog.js b/project/static/ckeditor/plugins/filerimage/dialogs/filerImageDialog.js new file mode 100644 index 0000000..10ef298 --- /dev/null +++ b/project/static/ckeditor/plugins/filerimage/dialogs/filerImageDialog.js @@ -0,0 +1,332 @@ +// Copy+pasted from /static/filer/js/popup_handling.js, because we can't always count on this being loaded. + +(function($) { + dismissPopupAndReload = function(win) { + document.location.reload(); + win.close(); + }; + dismissRelatedImageLookupPopup = function(win, chosenId, chosenThumbnailUrl, chosenDescriptionTxt) { + var name = windowname_to_id(win.name); + var img_name = name + '_thumbnail_img'; + var txt_name = name + '_description_txt'; + var clear_name = name + '_clear'; + var elem = document.getElementById(name); + document.getElementById(name).value = chosenId; + document.getElementById(img_name).src = chosenThumbnailUrl; + document.getElementById(txt_name).innerHTML = chosenDescriptionTxt; + document.getElementById(clear_name).style.display = 'inline'; + win.close(); + }; + dismissRelatedFolderLookupPopup = function(win, chosenId, chosenName) { + var id = windowname_to_id(win.name); + var id_name = id + '_description_txt'; + document.getElementById(id).value = chosenId; + document.getElementById(id_name).innerHTML = chosenName; + win.close(); + }; +})(jQuery); + +CKEDITOR.dialog.add( 'filerImageDialog', function ( editor ) { + dialog = CKEDITOR.dialog.getCurrent(); + var imageWidth = 0; + var imageHeight = 0; + + function getImageUrl() { + var url = dialog.getContentElement("tab-basic", "url"); + var thumb_sel_val = dialog.getContentElement("tab-basic", "thumbnail_option").getValue(); + if (thumb_sel_val != 0) { + server_url = '?djangocms_ckeditor_filer_image='+ django.jQuery('#id_image').val() + '&thumb_options=' + thumb_sel_val; + } else { + width = dialog.getContentElement("tab-basic", "width").getValue(); + height = dialog.getContentElement("tab-basic", "height").getValue(); + server_url = '?djangocms_ckeditor_filer_image='+ django.jQuery('#id_image').val() + '&width=' + width + '&height=' + height; + } + django.jQuery.get(server_url, function(data) { + url.setValue(data.url); + imageWidth = data.width; + imageHeight = data.height; + }); + } + return { + title: 'Filer Image Properties', + minWidth: 400, + minHeight: 200, + + onShow: function() { + dialog = CKEDITOR.dialog.getCurrent(); + var document = this.getElement().getDocument(); + // document = CKEDITOR.dom.document + var id_image = document.getById( 'id_image' ); + var oldVal = id_image.getValue(); + + setInterval(function () { + if (oldVal != id_image.getValue()) { + oldVal = id_image.getValue(); + getImageUrl(); + } + }, 1000); + if ( id_image ) + id_image.hide(); + var id_image_clear = document.getById( 'id_image_clear' ); + + id_image_clear.on('click', function () { + id_image.setValue(""); + id_image.removeAttribute("value"); + id_image_thumbnail_img = document.getById( 'id_image_thumbnail_img' ); + id_image_thumbnail_img.setAttribute("src", editor.config.settings.static_url +'/../filer/icons/nofile_48x48.png'); + id_image_description_txt = document.getById( 'id_image_description_txt' ); + id_image_description_txt.setHtml(""); + id_image_clear = document.getById( 'id_image_clear' ); + id_image_clear.hide(); + }); + + // Get the selection in the editor. + var selection = editor.getSelection(); + + // Get the element at the start of the selection. + var element = selection.getStartElement(); + + // Get the element closest to the selection, if any. + if ( element ) + element = element.getAscendant( 'img', true ); + + // Create a new element if it does not exist. + if ( !element || element.getName() != 'img' ) { + element = editor.document.createElement( 'img' ); + + // Flag the insertion mode for later use. + this.insertMode = true; + } + else + this.insertMode = false; + + // Store the reference to the element in an internal property, for later use. + this.element = element; + + // Invoke the setup methods of all dialog elements, so they can load the element attributes. + if ( !this.insertMode ) + this.setupContent( this.element ); + else + id_image_clear.fire('click'); + }, + // This method is invoked once a user clicks the OK button, confirming the dialog. + onOk: function() { + + // The context of this function is the dialog object itself. + // http://docs.ckeditor.com/#!/api/CKEDITOR.dialog + var dialog = this; + + // Creates a new element. + var abbr = this.element; + + // Invoke the commit methods of all dialog elements, so the element gets modified. + this.commitContent( abbr ); + + // Finally, in if insert mode, inserts the element at the editor caret position. + if ( this.insertMode ) + editor.insertElement( abbr ); + }, + + contents: [ + { + id: 'tab-basic', + label: 'Basic Settings', + elements: [ + { + type: 'html', + html: + '
    ' + + '' + + 'no file selected' + + ' ' + + '' + + 'Pretraži' + + '' + + '' + + '
    ' + + '
    ', + }, + { + type: 'text', + id: 'url', + label: 'Url', + setup: function( element ) { + this.setValue( element.getAttribute( "src" ) ); + }, + // Called by the main commitContent call on dialog confirmation. + commit: function( element ) { + element.setAttribute( "src", this.getValue() ); + } + }, + { + type: 'text', + id: 'caption', + label: 'Caption', + setup: function( element ) { + this.setValue( element.getAttribute( "title" ) ); + }, + // Called by the main commitContent call on dialog confirmation. + commit: function( element ) { + element.setAttribute( "title", this.getValue() ); + } + }, + { + type: 'text', + id: 'alt_text', + label: 'Alt', + setup: function( element ) { + this.setValue( element.getAttribute( "alt" ) ); + }, + // Called by the main commitContent call on dialog confirmation. + commit: function( element ) { + element.setAttribute( "alt", this.getValue() ); + } + }, + { + type: 'hbox', + widths: [ '50%', '50%', ], + children: [ + { + type: 'checkbox', + id: 'use_original_image', + label: 'Use original image', + setup: function( element ) { + this.setValue( element.getAttribute( "original_image" ) ); + }, + // Called by the main commitContent call on dialog confirmation. + commit: function( element ) { + element.setAttribute( "original_image", this.getValue() ); + } + }, + { + type: 'select', + id: 'thumbnail_option', + items : [ ['--- Thumbnail ---',0] ], + onLoad : function() { + var element_id = '#' + this.getInputElement().$.id; + django.jQuery.ajax({ + type: 'GET', + url: '?djangocms_ckeditor_filer_thumbnail_options', + contentType: 'application/json; charset=utf-8', + dataType: 'json', + async: false, + success: function(data) { + django.jQuery.each(data, function(index, item) { + django.jQuery(element_id).get(0).options[django.jQuery(element_id).get(0).options.length] = new Option(item.name, item.id); + }); + }, + error:function (xhr, ajaxOptions, thrownError){ + alert(xhr.status); + alert(thrownError); + } + }); + }, + onChange: function() { + getImageUrl(); + }, + setup: function( element ) { + this.setValue( element.getAttribute( "thumb_option" ) ); + }, + // Called by the main commitContent call on dialog confirmation. + commit: function( element ) { + element.setAttribute( "thumb_option", this.getValue() ); + } + }, + ] + }, + { + type: 'hbox', + widths: [ '50%', '50%', ], + children: [ + { + type: 'text', + id: 'width', + label: 'Width', + onChange: function () { + if (this.getValue() != "") { + ratio = this.getValue() / imageWidth; // get ratio for scaling image + dialog.getContentElement("tab-basic", "height").setValue(Math.ceil(imageHeight * ratio)); + } + + //getImageUrl(); + }, + setup: function( element ) { + this.setValue( element.getAttribute( "width" ) ); + }, + // Called by the main commitContent call on dialog confirmation. + commit: function( element ) { + element.setAttribute( "width", this.getValue() ); + } + }, + { + type: 'text', + id: 'height', + label: 'Height', + onChange: function () { + getImageUrl(); + }, + setup: function( element ) { + this.setValue( element.getAttribute( "height" ) ); + }, + // Called by the main commitContent call on dialog confirmation. + commit: function( element ) { + element.setAttribute( "height", this.getValue() ); + } + }, + ] + }, + { + type: 'hbox', + widths: [ '33%', '33%', '33%' ], + children: [ + { + type: 'checkbox', + id: 'crop', + label: 'Crop', + }, + { + type: 'checkbox', + id: 'upscale', + label: 'Upscale', + }, + { + type: 'checkbox', + id: 'use_autoscale', + label: 'Autoscale', + }, + ] + }, + { + type: 'select', + id: 'alignment', + label : 'Alignment', + items: [ ["left"], ["right"] ], + setup: function( element ) { + this.setValue( element.getAttribute( "align" ) ); + }, + // Called by the main commitContent call on dialog confirmation. + commit: function( element ) { + element.setAttribute( "align", this.getValue() ); + } + }, + { + type: 'checkbox', + id: 'target_blank', + label: 'Target blank', + }, + ] + }, + { + id: 'tab-adv', + label: 'Advanced Settings', + elements: [ + { + type: 'text', + id: 'css_style', + label: 'CSS', + }, + ] + } + ] + }; +}); diff --git a/project/static/ckeditor/plugins/filerimage/icons/filerimage.png b/project/static/ckeditor/plugins/filerimage/icons/filerimage.png new file mode 100644 index 0000000..d581b16 Binary files /dev/null and b/project/static/ckeditor/plugins/filerimage/icons/filerimage.png differ diff --git a/project/static/ckeditor/plugins/filerimage/plugin.js b/project/static/ckeditor/plugins/filerimage/plugin.js new file mode 100644 index 0000000..e81227e --- /dev/null +++ b/project/static/ckeditor/plugins/filerimage/plugin.js @@ -0,0 +1,33 @@ +CKEDITOR.plugins.add( 'filerimage', { + icons: 'filerimage', + init: function( editor ) { + editor.addCommand( 'filerImageDialog', new CKEDITOR.dialogCommand( 'filerImageDialog' ) ); + + editor.ui.addButton( 'Filer Image', { + label: 'Insert filer image', + command: 'filerImageDialog', + toolbar: 'insert', + icon: 'filerimage' + }); + + if ( editor.contextMenu ) { + editor.addMenuGroup( 'Filer' ); + editor.addMenuItem( 'imageItem', { + label: 'Edit image', + icon: this.path + 'icons/filerimage.png', + command: 'filerImageDialog', + group: 'Filer' + }); + + editor.contextMenu.addListener( function( element ) { + if ( element.getAscendant( 'img', true ) ) { + return { imageItem: CKEDITOR.TRISTATE_OFF }; + } + }); + } + + CKEDITOR.dialog.add( 'filerImageDialog', this.path + 'dialogs/filerImageDialog.js' ); + + var dialog = CKEDITOR.dialog.getCurrent(); + } +}); diff --git a/project/static/css/style.css b/project/static/css/style.css index 9a765ac..c4bf659 100644 --- a/project/static/css/style.css +++ b/project/static/css/style.css @@ -1,23 +1,125 @@ +@font-face { + font-family: 'MyriadPro-Light'; + src: url('../fonts/MyriadPro-Light.eot'); + src: local('☺'), url('../fonts/MyriadPro-Light.woff') format('woff'), url('../fonts/MyriadPro-Light.ttf') format('truetype'), url('../fonts/MyriadPro-Light.svg') format('svg'); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: 'MyriadProCondensed'; + src: url('../fonts/myriadpro-cond.eot'); + src: url('../fonts/myriadpro-cond.eot') format('embedded-opentype'), + url('../fonts/myriadpro-cond.woff') format('woff'), + url('../fonts/myriadpro-cond.ttf') format('truetype'), + url('../fonts/myriadpro-cond.svg#MyriadProCondensed') format('svg'); +} +@font-face { + font-family: 'MyriadProRegular'; + src: url('../fonts/myriadpro-regular.eot'); + src: url('../fonts/myriadpro-regular.eot') format('embedded-opentype'), + url('../fonts/myriadpro-regular.woff') format('woff'), + url('../fonts/myriadpro-regular.ttf') format('truetype'), + url('../fonts/myriadpro-regular.svg#MyriadProRegular') format('svg'); +} .clear { clear: both; } .left { float: left; } .right { float: right; } .center { text-align: center; } +html { + height:100%; +} body { font-family: Arial,Helvetica,sans-serif; font-size: small; padding: 0; - margin: 0 auto; - width: 1000px; border: 0; height: 100%; - line-height: 120%; + color:#646669; + position:relative; + font-size:14px; + background: url(../img/bg.png); + margin:0; } - -a { color: #8D381D; cursor: pointer; text-decoration: underline; } +#bg { + z-index:0; + height:100%; +} +#bg-header {background:#fff;position:absolute;top:0;height:150px;width:100%;} +#bg-index {background:url(../img/index-banner.png) no-repeat top center;position:absolute;top:150px;height:551px;width:100%;} +#bg-index-promo {background:#38424c;position:absolute;top:701px;height:200px;width:100%;} +#body { + + height:auto; + min-height:100%; + position:relative; + margin: 0; + padding:0; + width: 100%; +} +#w1200 { + z-index:1; + position:relative; + margin: 0 auto; + padding:0 0 100px 0; + width: 1200px; +} +.w1200 {width:1200px;margin:0 auto;} + +#header {height:100px;width:100%;position:relative;} +#logo {font-family:"MyriadProRegular";display:block;overflow:hidden;margin-top:18px;} +#logo .logo-bigfont {font-size:30px;line-height:30px;margin-top:12px;} +.logo-text {margin-left:10px; font-size:18px;color:#3e454c;line-height:18px;} +.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;} +.register {background: url(../img/register-yellow.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;} +.index-banner-btn {width:800px;display:table;} +.index-register, .index-banner-btn p {display:table-cell;vertical-align:middle;padding:10px;} +.index-banner-btn p {width:440px;font-size:16px;background:#272b31;} +.index-register {font-size:22px;text-decoration:none;text-transform:uppercase;color:#4e5661;background:#fed13e;text-align:center;} + +.index-promo {height:200px;width:100%;position:relative;display:table-cell;vertical-align:middle;} +.index-promo .round {height:116px;width:116px;position:relative;border-radius:59px;float:left;margin-right:10px;} +.index-promo .round1 {background:#fed13e url(../img/index-promo-1.png) no-repeat center center;} +.index-promo .round2 {background:#fed13e url(../img/index-promo-2.png) no-repeat center center;} +.index-promo .round3 {background:#fed13e url(../img/index-promo-3.png) no-repeat center center;} +.index-promo-text {float:left;overflow:hidden;width:390px;font-family:"MyriadPro-Light"} +.index-promo-text h2 {text-transform:uppercase;color:#fed13e;font-size:33px;margin:5px 0;} +.index-promo-text .text {width:250px;} +.index-promo-text .text p {color:#fff;margin:5px 0;font-size:18px;} + +#reasons {position:relative;margin-bottom:260px;} +.extended-block {width:1200px;height:110px;overflow:visible;cursor:pointer;padding-right:650px;box-sizing:border-box;} +.extended-block .order {font-family:"MyriadProCondensed";font-size:110px;line-height:110px;font-weight:normal;color:#e0e0e0;} +.extended-block.active .order {color:#ffd64f;} +.extended-block-text .text {width:450px;height:110px;overflow:hidden;} +.extended-block-text h3 {font-size:18px;line-height:18px;color:#498dd0;margin:8px 0;} +.extended-block-text p {font-size:14px;line-height:14px;margin:4px 0;} +.extended-block-more {font-size:13px;line-height:13px;margin:0;background:url(../img/darker-bg.png);position:absolute;left:600px;top:0;width:423px;height:100%;box-sizing:border-box;padding:20px;} +.extended-block-more .text {padding:20px;overflow:hidden;height:100%;position:relative;background:#fff;box-sizing:border-box;} +.extended-block-more .text p {margin:0;} +.extended-triangle {background: url(../img/triangle.png) no-repeat center center;width:26px;height:29px;position:relative;left:574px;top:40px;} + +#index-yellow-banner {background:#fed13e;height:190px;width:100%;position:absolute;bottom:100px;z-index:5;} +#index-yellow-banner .w1200{height:100%;} +#index-yellow-banner .lamp {background:url(../img/lamp.png) no-repeat center center;height:190px;width:160px;} +#index-yellow-banner .text {width:640px;} +#index-yellow-banner .text a {font-size:30px;margin:0;font-family:"MyriadProRegular";display:inline-block;margin:25px 0 18px 0;} +#index-yellow-banner .text p {margin:0;font-size:15px;font-family:"MyriadProRegular";} +#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;} + +.db {display:block;} +a { color: #498dd0; cursor: pointer; text-decoration: underline; } a img { outline: none; border: 0; } h1, h2, h3 { line-height: normal; } +h1 {font-family:"Arial Narrow", Arial, sans-serif;font-size:30px;font-weight:normal;font-stretch:condensed;} +h2 {font-weight: normal;font-size:24px;} ul.messagelist { padding: 0 0 5px 0; margin: 0; } ul.messagelist li { @@ -69,10 +171,24 @@ input[type=text], input[type=password], textarea, option { padding-left: 2px; ma /*.client-form .buttons { padding: 10px 0 6px 33px; }*/ -.profile-col1 { float: left; width: 70%; } -.profile-col2 { float: left; width: 30%; } - -.info-bar { background-color: #f5f5f5; font-size: 11px; } +.profile-table {width:100%;overflow:hidden;border-collapse: separate; display:table;border-spacing:15px;background:url(../img/darker-bg.png);padding-bottom:85px;} +.profile-row {display:table-row;} +.profile-col1 {width: 785px;margin-right:15px;} +.profile-col2 {width: 370px;} +.profile-col1, .profile-col2 {float: none;background:#fff; box-shadow: 0 0 5px #ddd;padding:0px;display:table-cell;} +#profile {position:relative;margin-bottom:85px;} +#profile div {line-height: 20px;} +.reqs_btns {position:absolute; bottom:115px;text-align:center;width:785px;} +.reqs_btns input {display:inline;font-family:"Arial Narrow", Arial, sans-serif;font-size:22px;text-transform:uppercase;font-weight:bold;padding:25px 15px 25px 70px;border:none;} +.reqs_btns .yellow-btn {color:#4e5661;} +.reqs_btns .black-btn {color:#fff; margin-left:15px;} +.reqs_btns .black-btn.envelope {background:#38424c url(../img/envelope.png) no-repeat 15px center;} +.reqs_btns .yellow-btn.printer {background:#fed13e url(../img/printer.png) no-repeat 15px center;} +.info-bar { background-color: #f7f7f7; font-size: 11px; padding:10px 15px; font-size:16px;} + +#profile, .profile-filters-form {padding:15px;} + +#edit_profile {display: inline-block; float:right;padding-left: 15px;background:url(../img/pencil.png) no-repeat;font-size:13px;} ul { clear: both; list-style: none; margin: 0; padding: 0; } @@ -211,9 +327,23 @@ div.blockOverlay { background: url('../img/ajax-loader.gif') no-repeat center ce div.blockMsg { width: 100%; height: 100%; top: 0; left: 0; text-align: center; } .w100 {width:100px;min-height:5px;} .w200 {width:200px;min-height:5px;} -.header {font-weight:bold; } +.header {font-weight:bold;} + +#footer {background:#38424c;height:100px;position: absolute; bottom: 0px; width:100%;} +#footer-content {width:1200px;margin:0 auto;} +#footer-content a {margin-right: 150px;} +.footer-text {position:relative;padding:25px 0 10px 0;color:#fff;} + +#menu {width: 100%;height:50px;} +#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;} +#menu ul li.yellow.selected{background:url('../img/menu-selected2.png') #fed13e no-repeat bottom center;} +#menu ul li a, #menu ul li span {text-decoration:none;padding:0 25px;} +#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 ul li {display:inline;} .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;} .doc_status1, .doc_statusFalse, .doc_statusfalse {color:red;} diff --git a/project/static/fonts/261413575-a_AvanteLt-DemiBold.eot b/project/static/fonts/261413575-a_AvanteLt-DemiBold.eot new file mode 100644 index 0000000..3bf5ac8 Binary files /dev/null and b/project/static/fonts/261413575-a_AvanteLt-DemiBold.eot differ diff --git a/project/static/fonts/261413575-a_AvanteLt-DemiBold.html b/project/static/fonts/261413575-a_AvanteLt-DemiBold.html new file mode 100644 index 0000000..fa88d48 --- /dev/null +++ b/project/static/fonts/261413575-a_AvanteLt-DemiBold.html @@ -0,0 +1,39 @@ + + + + + Demo a_AvanteLt + + + + +

    +Ea fore firmissimum ab ubi ea illustriora. Qui nisi deserunt cohaerescant. Nam +legam domesticarum o illum aliquip excepteur et mandaremus e fore litteris ut do +enim tempor proident. Ullamco quis amet pariatur minim, offendit despicationes +in fabulas se aut quem tempor, aut mandaremus ad quamquam. Ut velit laboris +exercitation iis a te dolore sunt quorum. Quamquam philosophari ad ullamco. +Veniam laboris eruditionem id id velit occaecat eu probant eram varias e duis, +ut e firmissimum. +

    +
    +Generated using the @font-face Generator at font-face-generator.com +
    + + + \ No newline at end of file diff --git a/project/static/fonts/261413575-a_AvanteLt-DemiBold.svg b/project/static/fonts/261413575-a_AvanteLt-DemiBold.svg new file mode 100644 index 0000000..e69de29 diff --git a/project/static/fonts/261413575-a_AvanteLt-DemiBold.ttf b/project/static/fonts/261413575-a_AvanteLt-DemiBold.ttf new file mode 100644 index 0000000..694e6c7 Binary files /dev/null and b/project/static/fonts/261413575-a_AvanteLt-DemiBold.ttf differ diff --git a/project/static/fonts/261413575-a_AvanteLt-DemiBold.woff b/project/static/fonts/261413575-a_AvanteLt-DemiBold.woff new file mode 100644 index 0000000..d629d35 Binary files /dev/null and b/project/static/fonts/261413575-a_AvanteLt-DemiBold.woff differ diff --git a/project/static/fonts/332733155-a_AvanteLt-Light.eot b/project/static/fonts/332733155-a_AvanteLt-Light.eot new file mode 100644 index 0000000..f54734f Binary files /dev/null and b/project/static/fonts/332733155-a_AvanteLt-Light.eot differ diff --git a/project/static/fonts/332733155-a_AvanteLt-Light.html b/project/static/fonts/332733155-a_AvanteLt-Light.html new file mode 100644 index 0000000..72a365d --- /dev/null +++ b/project/static/fonts/332733155-a_AvanteLt-Light.html @@ -0,0 +1,39 @@ + + + + + Demo a_AvanteLt + + + + +

    +Ea fore firmissimum ab ubi ea illustriora. Qui nisi deserunt cohaerescant. Nam +legam domesticarum o illum aliquip excepteur et mandaremus e fore litteris ut do +enim tempor proident. Ullamco quis amet pariatur minim, offendit despicationes +in fabulas se aut quem tempor, aut mandaremus ad quamquam. Ut velit laboris +exercitation iis a te dolore sunt quorum. Quamquam philosophari ad ullamco. +Veniam laboris eruditionem id id velit occaecat eu probant eram varias e duis, +ut e firmissimum. +

    +
    +Generated using the @font-face Generator at font-face-generator.com +
    + + + \ No newline at end of file diff --git a/project/static/fonts/332733155-a_AvanteLt-Light.svg b/project/static/fonts/332733155-a_AvanteLt-Light.svg new file mode 100644 index 0000000..e69de29 diff --git a/project/static/fonts/332733155-a_AvanteLt-Light.ttf b/project/static/fonts/332733155-a_AvanteLt-Light.ttf new file mode 100644 index 0000000..7ac90a1 Binary files /dev/null and b/project/static/fonts/332733155-a_AvanteLt-Light.ttf differ diff --git a/project/static/fonts/332733155-a_AvanteLt-Light.woff b/project/static/fonts/332733155-a_AvanteLt-Light.woff new file mode 100644 index 0000000..4ce7486 Binary files /dev/null and b/project/static/fonts/332733155-a_AvanteLt-Light.woff differ diff --git a/project/static/fonts/MyriadPro-Light.eot b/project/static/fonts/MyriadPro-Light.eot new file mode 100644 index 0000000..5797f87 Binary files /dev/null and b/project/static/fonts/MyriadPro-Light.eot differ diff --git a/project/static/fonts/MyriadPro-Light.otf b/project/static/fonts/MyriadPro-Light.otf new file mode 100644 index 0000000..629b7cf Binary files /dev/null and b/project/static/fonts/MyriadPro-Light.otf differ diff --git a/project/static/fonts/MyriadPro-Light.svg b/project/static/fonts/MyriadPro-Light.svg new file mode 100644 index 0000000..629b7cf Binary files /dev/null and b/project/static/fonts/MyriadPro-Light.svg differ diff --git a/project/static/fonts/MyriadPro-Light.ttf b/project/static/fonts/MyriadPro-Light.ttf new file mode 100644 index 0000000..8f3716b Binary files /dev/null and b/project/static/fonts/MyriadPro-Light.ttf differ diff --git a/project/static/fonts/MyriadPro-Light.woff b/project/static/fonts/MyriadPro-Light.woff new file mode 100644 index 0000000..9148d83 Binary files /dev/null and b/project/static/fonts/MyriadPro-Light.woff differ diff --git a/project/static/fonts/MyriadPro-Regular.eot b/project/static/fonts/MyriadPro-Regular.eot new file mode 100644 index 0000000..4d091c3 Binary files /dev/null and b/project/static/fonts/MyriadPro-Regular.eot differ diff --git a/project/static/fonts/MyriadPro-Regular.ttf b/project/static/fonts/MyriadPro-Regular.ttf new file mode 100644 index 0000000..70c4cb8 Binary files /dev/null and b/project/static/fonts/MyriadPro-Regular.ttf differ diff --git a/project/static/fonts/myriadpro-cond.eot b/project/static/fonts/myriadpro-cond.eot new file mode 100644 index 0000000..8932f81 Binary files /dev/null and b/project/static/fonts/myriadpro-cond.eot differ diff --git a/project/static/fonts/myriadpro-cond.svg b/project/static/fonts/myriadpro-cond.svg new file mode 100644 index 0000000..84b45b4 --- /dev/null +++ b/project/static/fonts/myriadpro-cond.svg @@ -0,0 +1,6618 @@ + + + + +Created by FontForge 20110222 at Wed Sep 4 10:33:48 2013 + By Orthosie Webhosting +Copyright (c) 2000 Adobe Systems Incorporated. All Rights Reserved. U.S. Patent Des. pending. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/project/static/fonts/myriadpro-cond.ttf b/project/static/fonts/myriadpro-cond.ttf new file mode 100644 index 0000000..e9a7e0d Binary files /dev/null and b/project/static/fonts/myriadpro-cond.ttf differ diff --git a/project/static/fonts/myriadpro-cond.woff b/project/static/fonts/myriadpro-cond.woff new file mode 100644 index 0000000..7d76194 Binary files /dev/null and b/project/static/fonts/myriadpro-cond.woff differ diff --git a/project/static/fonts/myriadpro-regular.css b/project/static/fonts/myriadpro-regular.css new file mode 100644 index 0000000..ce3cbba --- /dev/null +++ b/project/static/fonts/myriadpro-regular.css @@ -0,0 +1,8 @@ +@font-face { + font-family: 'MyriadProRegular'; + src: url('myriadpro-regular.eot'); + src: url('myriadpro-regular.eot') format('embedded-opentype'), + url('myriadpro-regular.woff') format('woff'), + url('myriadpro-regular.ttf') format('truetype'), + url('myriadpro-regular.svg#MyriadProRegular') format('svg'); +} diff --git a/project/static/fonts/myriadpro-regular.eot b/project/static/fonts/myriadpro-regular.eot new file mode 100644 index 0000000..fec6930 Binary files /dev/null and b/project/static/fonts/myriadpro-regular.eot differ diff --git a/project/static/fonts/myriadpro-regular.svg b/project/static/fonts/myriadpro-regular.svg new file mode 100644 index 0000000..fe04bd7 --- /dev/null +++ b/project/static/fonts/myriadpro-regular.svg @@ -0,0 +1,8985 @@ + + + + +Created by FontForge 20110222 at Wed Sep 4 13:22:36 2013 + By Orthosie Webhosting +(c) 1992, 1994, 1997, 2000, 2004 Adobe Systems Incorporated. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/project/static/fonts/myriadpro-regular.ttf b/project/static/fonts/myriadpro-regular.ttf new file mode 100644 index 0000000..d069055 Binary files /dev/null and b/project/static/fonts/myriadpro-regular.ttf differ diff --git a/project/static/fonts/myriadpro-regular.woff b/project/static/fonts/myriadpro-regular.woff new file mode 100644 index 0000000..943e4ea Binary files /dev/null and b/project/static/fonts/myriadpro-regular.woff differ diff --git a/project/static/img/bg.png b/project/static/img/bg.png new file mode 100644 index 0000000..e6c39ae Binary files /dev/null and b/project/static/img/bg.png differ diff --git a/project/static/img/darker-bg.png b/project/static/img/darker-bg.png new file mode 100644 index 0000000..de6467c Binary files /dev/null and b/project/static/img/darker-bg.png differ diff --git a/project/static/img/envelope.png b/project/static/img/envelope.png new file mode 100644 index 0000000..ac08284 Binary files /dev/null and b/project/static/img/envelope.png differ diff --git a/project/static/img/index-banner.png b/project/static/img/index-banner.png new file mode 100644 index 0000000..9d8ca5c Binary files /dev/null and b/project/static/img/index-banner.png differ diff --git a/project/static/img/index-promo-1.png b/project/static/img/index-promo-1.png new file mode 100644 index 0000000..4a4658d Binary files /dev/null and b/project/static/img/index-promo-1.png differ diff --git a/project/static/img/index-promo-2.png b/project/static/img/index-promo-2.png new file mode 100644 index 0000000..87b18e2 Binary files /dev/null and b/project/static/img/index-promo-2.png differ diff --git a/project/static/img/index-promo-3.png b/project/static/img/index-promo-3.png new file mode 100644 index 0000000..5fd1239 Binary files /dev/null and b/project/static/img/index-promo-3.png differ diff --git a/project/static/img/lamp.png b/project/static/img/lamp.png new file mode 100644 index 0000000..0e2ba4b Binary files /dev/null and b/project/static/img/lamp.png differ diff --git a/project/static/img/login-black.png b/project/static/img/login-black.png new file mode 100644 index 0000000..0fe49de Binary files /dev/null and b/project/static/img/login-black.png differ diff --git a/project/static/img/login-yellow.png b/project/static/img/login-yellow.png new file mode 100644 index 0000000..bac5cc7 Binary files /dev/null and b/project/static/img/login-yellow.png differ diff --git a/project/static/img/logo.png b/project/static/img/logo.png new file mode 100644 index 0000000..6fbd53d Binary files /dev/null and b/project/static/img/logo.png differ diff --git a/project/static/img/man.png b/project/static/img/man.png new file mode 100644 index 0000000..8dad677 Binary files /dev/null and b/project/static/img/man.png differ diff --git a/project/static/img/menu-selected.png b/project/static/img/menu-selected.png new file mode 100644 index 0000000..fc9c9f2 Binary files /dev/null and b/project/static/img/menu-selected.png differ diff --git a/project/static/img/menu-selected2.png b/project/static/img/menu-selected2.png new file mode 100644 index 0000000..3fc254e Binary files /dev/null and b/project/static/img/menu-selected2.png differ diff --git a/project/static/img/pencil.png b/project/static/img/pencil.png new file mode 100644 index 0000000..1953bc5 Binary files /dev/null and b/project/static/img/pencil.png differ diff --git a/project/static/img/printer.png b/project/static/img/printer.png new file mode 100644 index 0000000..f674a9e Binary files /dev/null and b/project/static/img/printer.png differ diff --git a/project/static/img/register-yellow.png b/project/static/img/register-yellow.png new file mode 100644 index 0000000..0df27ad Binary files /dev/null and b/project/static/img/register-yellow.png differ diff --git a/project/static/img/triangle.png b/project/static/img/triangle.png new file mode 100644 index 0000000..90d4480 Binary files /dev/null and b/project/static/img/triangle.png differ diff --git a/project/static/js/commons.js b/project/static/js/commons.js index f0f18f6..e58a006 100644 --- a/project/static/js/commons.js +++ b/project/static/js/commons.js @@ -1,5 +1,13 @@ $(document).ready(function() { $('.has-datepicker').datepicker({dateFormat: 'dd.mm.yy'}); + $('.extended-block').click(function(){ + $('.extended-block').removeClass('active'); + $('.extended-block-more').hide(); + $('.extended-triangle').hide(); + $(this).find('.extended-block-more').show(); + $(this).find('.extended-triangle').show(); + $(this).addClass('active'); + }); $('.close-message').click(function(e){ e.preventDefault(); $(this).closest('li').hide(); diff --git a/project/templates/base.html b/project/templates/base.html index 01f1a3c..2b8a8bf 100644 --- a/project/templates/base.html +++ b/project/templates/base.html @@ -24,45 +24,63 @@ {% endif %} - -
    - -
    - {% static_placeholder "header_phone" %} - {% static_placeholder "header_address" %} - Оставить сообщение -
    -
    -