css started, index page, profile page

remotes/origin/yandex
Bachurin Sergey 11 years ago
parent a4b6e63fa4
commit 47ceccf12a
  1. 0
      project/index_blocks/__init__.py
  2. 68
      project/index_blocks/cms_plugins.py
  3. 27
      project/index_blocks/forms.py
  4. 55
      project/index_blocks/migrations/0001_initial.py
  5. 57
      project/index_blocks/migrations/0002_auto__add_field_indexblockplugin_title__chg_field_indexblockplugin_des.py
  6. 66
      project/index_blocks/migrations/0003_auto__add_extendedblockplugin.py
  7. 72
      project/index_blocks/migrations/0004_auto__add_extendedtextblockplugin.py
  8. 81
      project/index_blocks/migrations/0005_auto__add_field_extendedtextblockplugin_order__chg_field_extendedtextb.py
  9. 0
      project/index_blocks/migrations/__init__.py
  10. 23
      project/index_blocks/models.py
  11. 16
      project/index_blocks/templates/extended_block.html
  12. 17
      project/index_blocks/templates/extended_text_block.html
  13. 12
      project/index_blocks/templates/index_block.html
  14. 10
      project/index_blocks/templates/slideshow_block.html
  15. 16
      project/index_blocks/tests.py
  16. 1
      project/index_blocks/views.py
  17. 49
      project/settings.py
  18. 332
      project/static/ckeditor/plugins/filerimage/dialogs/filerImageDialog.js
  19. BIN
      project/static/ckeditor/plugins/filerimage/icons/filerimage.png
  20. 33
      project/static/ckeditor/plugins/filerimage/plugin.js
  21. 152
      project/static/css/style.css
  22. BIN
      project/static/fonts/261413575-a_AvanteLt-DemiBold.eot
  23. 39
      project/static/fonts/261413575-a_AvanteLt-DemiBold.html
  24. 0
      project/static/fonts/261413575-a_AvanteLt-DemiBold.svg
  25. BIN
      project/static/fonts/261413575-a_AvanteLt-DemiBold.ttf
  26. BIN
      project/static/fonts/261413575-a_AvanteLt-DemiBold.woff
  27. BIN
      project/static/fonts/332733155-a_AvanteLt-Light.eot
  28. 39
      project/static/fonts/332733155-a_AvanteLt-Light.html
  29. 0
      project/static/fonts/332733155-a_AvanteLt-Light.svg
  30. BIN
      project/static/fonts/332733155-a_AvanteLt-Light.ttf
  31. BIN
      project/static/fonts/332733155-a_AvanteLt-Light.woff
  32. BIN
      project/static/fonts/MyriadPro-Light.eot
  33. BIN
      project/static/fonts/MyriadPro-Light.otf
  34. BIN
      project/static/fonts/MyriadPro-Light.svg
  35. BIN
      project/static/fonts/MyriadPro-Light.ttf
  36. BIN
      project/static/fonts/MyriadPro-Light.woff
  37. BIN
      project/static/fonts/MyriadPro-Regular.eot
  38. BIN
      project/static/fonts/MyriadPro-Regular.ttf
  39. BIN
      project/static/fonts/myriadpro-cond.eot
  40. 6618
      project/static/fonts/myriadpro-cond.svg
  41. BIN
      project/static/fonts/myriadpro-cond.ttf
  42. BIN
      project/static/fonts/myriadpro-cond.woff
  43. 8
      project/static/fonts/myriadpro-regular.css
  44. BIN
      project/static/fonts/myriadpro-regular.eot
  45. 8985
      project/static/fonts/myriadpro-regular.svg
  46. BIN
      project/static/fonts/myriadpro-regular.ttf
  47. BIN
      project/static/fonts/myriadpro-regular.woff
  48. BIN
      project/static/img/bg.png
  49. BIN
      project/static/img/darker-bg.png
  50. BIN
      project/static/img/envelope.png
  51. BIN
      project/static/img/index-banner.png
  52. BIN
      project/static/img/index-promo-1.png
  53. BIN
      project/static/img/index-promo-2.png
  54. BIN
      project/static/img/index-promo-3.png
  55. BIN
      project/static/img/lamp.png
  56. BIN
      project/static/img/login-black.png
  57. BIN
      project/static/img/login-yellow.png
  58. BIN
      project/static/img/logo.png
  59. BIN
      project/static/img/man.png
  60. BIN
      project/static/img/menu-selected.png
  61. BIN
      project/static/img/menu-selected2.png
  62. BIN
      project/static/img/pencil.png
  63. BIN
      project/static/img/printer.png
  64. BIN
      project/static/img/register-yellow.png
  65. BIN
      project/static/img/triangle.png
  66. 8
      project/static/js/commons.js
  67. 84
      project/templates/base.html
  68. 12
      project/templates/cms/menu.html
  69. 12
      project/templates/cms/menu/menu.html
  70. 336
      project/templates/customer/profile/view.html
  71. 49
      project/templates/menu/menu.html
  72. 72
      project/templates/pages/index.html
  73. 2
      project/templates/pages/inner_page.html
  74. 2
      requirements.txt

@ -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)

@ -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')

@ -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']

@ -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']

@ -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']

@ -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']

@ -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']

@ -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()

@ -0,0 +1,16 @@
{% load thumbnail %}
<article class='extended-block'>
<div class='extended-block-img left'>
{% thumbnail object.image.name "190x132" crop="center" as img %}
<img src="{{ img.url }}" width="{{ img.width }}" height="{{ img.height }}" {% if picture.alt %}alt="{{ picture.alt }}" {% endif %}{% if picture.longdesc %}title="{{ picture.longdesc }}" {% endif %}/>
</div>
<div class='extended-block-text extended-block-toggle'>
<h3>{{ object.title }}</h3>
{{ object.description|safe }}
</div>
<div class='extended-block-more extended-block-toggle hidden'>
<h3>{{ object.title }}</h3>
{{ object.extended_description|safe }}
</div>
<div class='clear'></div>
</article>

@ -0,0 +1,17 @@
{% load thumbnail %}
<article class='extended-block'>
<div class='extended-block-text'>
<div class='order left'>{{ object.order }}</div>
<div class='left text'>
<h3>{{ object.title }}</h3>
{{ object.description|safe }}
</div>
</div>
<div class='extended-triangle hidden'></div>
<div class='clear'></div>
<div class='extended-block-more hidden'>
<div class="text">
{{ object.extended_description|safe }}
</div>
</div>
</article>

@ -0,0 +1,12 @@
{% load thumbnail %}
<article class='index-block left'>
<div class='index-block-img'>
{% thumbnail object.image.name "250x110" crop="center" as img %}
<img src="{{ img.url }}" width="{{ img.width }}" height="{{ img.height }}" {% if picture.alt %}alt="{{ picture.alt }}" {% endif %}{% if picture.longdesc %}title="{{ picture.longdesc }}" {% endif %}/>
{% endthumbnail %}
</div>
<div class='index-block-text'>
<h3>{{ object.title }}</h3>
{{ object.description|safe }}
</div>
</article>

@ -0,0 +1,10 @@
{% load thumbnail %}
<li>
{% thumbnail object.image.name "650x450" crop="center" as img %}
<img src="{{ img.url }}" width="{{ img.width }}" height="{{ img.height }}" {% if picture.alt %}alt="{{ picture.alt }}" {% endif %}{% if picture.longdesc %}title="{{ picture.longdesc }}" {% endif %}/>
{% endthumbnail %}
<div class='index-banner-caption'>
{% if object.title %}<h1>{{ object.title }}</h1>{% endif %}
{{ object.description|safe|default:'' }}
</div>
</li>

@ -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)

@ -0,0 +1 @@
# Create your views here.

@ -73,7 +73,7 @@ STATIC_ROOT = path('../_public_html/static')
# URL prefix for static files. # URL prefix for static files.
# Example: "http://example.com/static/", "http://static.example.com/" # Example: "http://example.com/static/", "http://static.example.com/"
STATIC_URL = '/s/' STATIC_URL = '/static/'
# Additional locations of static files # Additional locations of static files
STATICFILES_DIRS = ( STATICFILES_DIRS = (
@ -115,6 +115,7 @@ MIDDLEWARE_CLASSES = (
'cms.middleware.user.CurrentUserMiddleware', 'cms.middleware.user.CurrentUserMiddleware',
'cms.middleware.toolbar.ToolbarMiddleware', 'cms.middleware.toolbar.ToolbarMiddleware',
'cms.middleware.language.LanguageCookieMiddleware', 'cms.middleware.language.LanguageCookieMiddleware',
'djangocms_ckeditor_filer.middleware.ThumbnailMiddleware',
# my # my
'project.customer.middleware.ProfileMiddleware', 'project.customer.middleware.ProfileMiddleware',
@ -156,9 +157,9 @@ INSTALLED_APPS = (
# Uncomment the next line to enable the admin: # Uncomment the next line to enable the admin:
'pytils', 'pytils',
'django_filters', # 'sorl.thumbnail',
# 'django_filters',
'autocomplete_light', 'autocomplete_light',
'cms',
'cms', # django CMS itself 'cms', # django CMS itself
'mptt', # utilities for implementing a modified pre-order traversal tree 'mptt', # utilities for implementing a modified pre-order traversal tree
'menus', # helper for model independent hierarchical website navigation 'menus', # helper for model independent hierarchical website navigation
@ -167,6 +168,8 @@ INSTALLED_APPS = (
#'robokassa', #'robokassa',
'djangocms_admin_style', # for the admin skin. You **must** add 'djangocms_admin_style' in the list before 'django.contrib.admin'. '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 <enable-messages>`) 'django.contrib.messages', # to enable messages framework (see :ref:`Enable messages <enable-messages>`)
'filer',
'easy_thumbnails',
'djangocms_file', 'djangocms_file',
'djangocms_flash', 'djangocms_flash',
'djangocms_googlemap', 'djangocms_googlemap',
@ -177,6 +180,13 @@ INSTALLED_APPS = (
'djangocms_link', 'djangocms_link',
'djangocms_snippet', 'djangocms_snippet',
'djangocms_text_ckeditor', '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.admin',
'django.contrib.admindocs', 'django.contrib.admindocs',
@ -187,6 +197,7 @@ INSTALLED_APPS = (
'project.docs', 'project.docs',
'project.pages', 'project.pages',
'project.callback', 'project.callback',
'project.index_blocks',
# keep it last # keep it last
'south', 'south',
@ -243,6 +254,8 @@ CMS_TEMPLATES = (
('pages/inner_page.html', u'Внутренняя страница'), ('pages/inner_page.html', u'Внутренняя страница'),
) )
CMS_PERMISSION = True
BROKER_HOST = "localhost" BROKER_HOST = "localhost"
BROKER_PORT = 5672 BROKER_PORT = 5672
BROKER_USER = "user" BROKER_USER = "user"
@ -274,7 +287,35 @@ CELERYBEAT_SCHEDULE = {
} }
CAPTCHA_OUTPUT_FORMAT = u"%(hidden_field)s%(text_field)s<a href='#' class='captcha_refresh'><img src='" + STATIC_URL + "img/refresh.png' /></a> %(image)s" CAPTCHA_OUTPUT_FORMAT = u"%(hidden_field)s%(text_field)s<a href='#' class='captcha_refresh'><img src='" + STATIC_URL + "img/refresh.png' /></a> %(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: try:
from project.local_settings import * from project.local_settings import *
except ImportError: except ImportError:

@ -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 <img> element closest to the selection, if any.
if ( element )
element = element.getAscendant( 'img', true );
// Create a new <img> 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 <abbr> 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 <abbr> element.
var abbr = this.element;
// Invoke the commit methods of all dialog elements, so the <abbr> 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:
'<div class="field-box field-image">' +
'<label for="id_image">Image:</label>' +
'<img alt="no file selected" class="quiet" src="'+ editor.config.settings.static_url +'/../filer/icons/nofile_48x48.png" id="id_image_thumbnail_img">' +
'&nbsp;<span id="id_image_description_txt"></span>' +
'<a onclick="return showRelatedObjectLookupPopup(this);" title="Pretraži" id="lookup_id_image" class="related-lookup" href="/admin/filer/folder/last/?t=file_ptr">' +
'<img width="16" height="16" alt="Pretraži" src="'+ editor.config.settings.static_url +'/../admin/img/icon_searchbox.png">' +
'</a>' +
'<img width="10" height="10" style="display: none;" title="Očisti" alt="Očisti" src="'+ editor.config.settings.static_url +'/../admin/img/icon_deletelink.gif" id="id_image_clear">' +
'<br><input type="text" id="id_image" name="image" class="vForeignKeyRawIdAdminField">' +
'</div>',
},
{
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',
},
]
}
]
};
});

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

@ -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();
}
});

@ -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; } .clear { clear: both; }
.left { float: left; } .left { float: left; }
.right { float: right; } .right { float: right; }
.center { text-align: center; } .center { text-align: center; }
html {
height:100%;
}
body { body {
font-family: Arial,Helvetica,sans-serif; font-family: Arial,Helvetica,sans-serif;
font-size: small; font-size: small;
padding: 0; padding: 0;
margin: 0 auto;
width: 1000px;
border: 0; border: 0;
height: 100%; height: 100%;
line-height: 120%; color:#646669;
position:relative;
font-size:14px;
background: url(../img/bg.png);
margin:0;
} }
#bg {
a { color: #8D381D; cursor: pointer; text-decoration: underline; } 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; } a img { outline: none; border: 0; }
h1, h2, h3 { line-height: normal; } 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 { padding: 0 0 5px 0; margin: 0; }
ul.messagelist li { 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; }*/ /*.client-form .buttons { padding: 10px 0 6px 33px; }*/
.profile-col1 { float: left; width: 70%; } .profile-table {width:100%;overflow:hidden;border-collapse: separate; display:table;border-spacing:15px;background:url(../img/darker-bg.png);padding-bottom:85px;}
.profile-col2 { float: left; width: 30%; } .profile-row {display:table-row;}
.profile-col1 {width: 785px;margin-right:15px;}
.info-bar { background-color: #f5f5f5; font-size: 11px; } .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; } 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; } div.blockMsg { width: 100%; height: 100%; top: 0; left: 0; text-align: center; }
.w100 {width:100px;min-height:5px;} .w100 {width:100px;min-height:5px;}
.w200 {width:200px;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;} .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;} .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;} .doc_status1, .doc_statusFalse, .doc_statusfalse {color:red;}

@ -0,0 +1,39 @@
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Demo a_AvanteLt</title>
<style>
@font-face {
font-family: "a_AvanteLt";
src: url('261413575-a_AvanteLt-DemiBold.eot');
src: url('261413575-a_AvanteLt-DemiBold.eot?#iefix') format('embedded-opentype'),
url('261413575-a_AvanteLt-DemiBold.svg#a_AvanteLt') format('svg'),
url('261413575-a_AvanteLt-DemiBold.woff') format('woff'),
url('261413575-a_AvanteLt-DemiBold.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
body{
font-family: "a_AvanteLt";
direction: ltr;
}
</style>
</head>
<body>
<p>
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.
</p>
<hr />
Generated using the @font-face Generator at <a href="http://www.font-face-generator.com">font-face-generator.com</a>
<hr />
<!-- Web Font generated by Web Font gerenator at www.font-face-generator.com -->
</body>
</html>

@ -0,0 +1,39 @@
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Demo a_AvanteLt</title>
<style>
@font-face {
font-family: "a_AvanteLt";
src: url('332733155-a_AvanteLt-Light.eot');
src: url('332733155-a_AvanteLt-Light.eot?#iefix') format('embedded-opentype'),
url('332733155-a_AvanteLt-Light.svg#a_AvanteLt') format('svg'),
url('332733155-a_AvanteLt-Light.woff') format('woff'),
url('332733155-a_AvanteLt-Light.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
body{
font-family: "a_AvanteLt";
direction: ltr;
}
</style>
</head>
<body>
<p>
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.
</p>
<hr />
Generated using the @font-face Generator at <a href="http://www.font-face-generator.com">font-face-generator.com</a>
<hr />
<!-- Web Font generated by Web Font gerenator at www.font-face-generator.com -->
</body>
</html>

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 340 KiB

@ -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');
}

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 596 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 479 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 972 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 952 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 906 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 625 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 398 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 373 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 623 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 930 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

@ -1,5 +1,13 @@
$(document).ready(function() { $(document).ready(function() {
$('.has-datepicker').datepicker({dateFormat: 'dd.mm.yy'}); $('.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){ $('.close-message').click(function(e){
e.preventDefault(); e.preventDefault();
$(this).closest('li').hide(); $(this).closest('li').hide();

@ -24,45 +24,63 @@
</ul> </ul>
</div> </div>
{% endif %} {% endif %}
<div id="body">
<div style="margin: 10px 0; height: 30px;"> <div id="bg">
<div style="float: left; font-weight: bold; font-size: 22px;"> <div id="bg-header">&nbsp;</div>
<a href="/">Документор</a> {% block bg %}
</div> {% endblock %}
<div class='right'> </div>
<span>{% static_placeholder "header_phone" %}</span> <div id="w1200">
<span>{% static_placeholder "header_address" %}</span> <div id="header">
<a href="#" onclick="return show_req_avail_form('{% url 'callback-send-message' %}');">Оставить сообщение</a> <div class="left">
</div> <a href="/" id="logo">
<div class='clear'></div> <img class='left' src='{{ STATIC_URL }}img/logo.png' />
<div id="menu"> <div class="left logo-text">
<ul style='float:left;width:500px;'> <div class="logo-bigfont">Документор</div>
{% show_menu 0 100 100 100 "cms/menu/main.html" %} <div>Сервис, которому нравится создавать документы. И вам понравится!</div>
</ul> </div>
</a>
{% if user.is_authenticated %}
<div style="float: right; margin-right: 10px;">
<a href="{% url 'customer_index' %}" style="margin-right: 10px">{{ request.user.profile.get_company_name|default:'Новый профиль' }}</a>
&nbsp;|&nbsp;
<a href="{% url 'auth_logout' %}">Выход</a>
</div>
{% else %}
<div style="float: right; margin-right: 10px;">
<a href="{% url 'myauth_register' %}" style="margin-right: 10px">Регистрация и цены</a>
&nbsp;|&nbsp;
<a href="{% url 'myauth_login' %}">Вход</a>
</div> </div>
{% endif %} {% if user.is_authenticated %}
<div class="auth_block right">
<a href="{% url 'customer_index' %}">{{ request.user.profile.get_company_name|default:'Новый профиль' }}</a>
&nbsp;|&nbsp;
<a href="{% url 'auth_logout' %}">Выход</a>
</div>
{% else %}
<div class="auth_block right">
<a href="{% url 'myauth_register' %}" class="register left">Регистрация и цены</a>
<a href="{% url 'myauth_login' %}" class="login left">Вход в систему</a>
</div>
{% endif %}
<div class='clear'></div>
</div> </div>
</div>
<div class="clear"></div> <div class="clear"></div>
{% block top_menu %}{% endblock %} {% block top_menu %}
<div id="menu">
<ul>
{% show_menu 0 100 100 100 %}
</ul>
</div>
{% endblock %}
{% block content %}{% endblock %} {% block content %}{% endblock %}
</div>
{% block bottom_wide %}{% endblock %}
{% block footer %}
<div id='footer'>
<div id="footer-content">
<div class="footer-text">Техподдержка Документора</div>
<a href='#'>help@documentor.ru</a>
<a href="#" onclick="return show_req_avail_form('{% url 'callback-send-message' %}');">Обратная связь</a>
<a href="#">Лицензионный договор</a>
</div>
</div>
{% block footer %}{% endblock %} {% endblock %}
</div>
<div id="dialogs"> <div id="dialogs">
{% block dialogs %}{% endblock %} {% block dialogs %}{% endblock %}

@ -0,0 +1,12 @@
{% load menu_tags %}
{% for child in children %}
<li class="child{% if child.selected %} selected{% endif %}{% if child.ancestor %} ancestor{% endif %}{% if child.sibling %} sibling{% endif %}{% if child.descendant %} descendant{% endif %}">
<a href="{{ child.attr.redirect_url|default:child.get_absolute_url }}">111{{ child.get_menu_title }}</a>
{% if child.children %}
<ul>
{% show_menu from_level to_level extra_inactive extra_active template "" "" child %}
</ul>
{% endif %}
</li>
{% endfor %}

@ -0,0 +1,12 @@
{% load menu_tags %}
{% for child in children %}
<li class="child{% if child.selected %} selected{% endif %}{% if child.ancestor %} ancestor{% endif %}{% if child.sibling %} sibling{% endif %}{% if child.descendant %} descendant{% endif %}">
<a href="{{ child.attr.redirect_url|default:child.get_absolute_url }}">111{{ child.get_menu_title }}</a>
{% if child.children %}
<ul>
{% show_menu from_level to_level extra_inactive extra_active template "" "" child %}
</ul>
{% endif %}
</li>
{% endfor %}

@ -7,204 +7,206 @@
{% url 'customer_profile_edit' as url_profile_edit %} {% url 'customer_profile_edit' as url_profile_edit %}
<div class="nav" style="font-size: small;"> <div class="nav" style="font-size: small;">
<a href="{{ url_profile_edit }}">Изменить реквизиты</a>
</div> </div>
<br /> <h1>Мои реквизиты</h1>
<form id="profile-filters-form" action="" method="post" autocomplete="off">
<div class="profile-col1"> {% csrf_token %}
<div class="info-bar">Карточка компании</div> <div class="profile-table">
<div class="profile-row">
<div id="profile"> <div class="profile-col1">
<h2> <div class="info-bar">Карточка компании<a href="{{ url_profile_edit }}" id='edit_profile'>Редактировать реквизиты</a></div>
<span id="contact_imgs" class="block logo">
{% if profile.logo %} <div id="profile">
<span id="logo"> <h2>
<img src='{{ MEDIA_URL }}{{ profile.logo }}' alt='logo' /> <span id="contact_imgs" class="block logo">
</span> {% if profile.logo %}
{% endif %} <span id="logo">
</span> <img src='{{ MEDIA_URL }}{{ profile.logo }}' alt='logo' />
{{ profile.get_company_name }} </span>
</h2> {% endif %}
</span>
<div id="profile_type" class="block info"> {{ profile.get_company_name }}
{% if profile.is_org %} </h2>
<div id="full_name">Полное название организации: {{ profile.full_name }}</div>
{% endif %} <div id="profile_type" class="block info">
{% if profile.is_org %}
{% if profile.inn %}<div id="inn">ИНН: {{ profile.inn }}</div>{% endif %} <div id="full_name">Полное название организации: {{ profile.full_name }}</div>
{% endif %}
{% if profile.is_org %}
<div id="kpp">КПП: {{ profile.kpp }}</div>
{% endif %}
{% if profile.ogrn %}
<div id="ogrn">
{% if profile.is_ip %}ОГРНИП{% else %}ОГРН{% endif %}: {{ profile.ogrn }}
</div>
{% endif %}
{% if profile.okpo %}<div id="okpo">ОКПО: {{ profile.okpo }}</div>{% endif %} {% if profile.inn %}<div id="inn">ИНН: {{ profile.inn }}</div>{% endif %}
{% if profile.is_ip %} {% if profile.is_org %}
{% if profile.svid_gos_reg %}<div id="svid_gos_reg">Свид-во о гос. регистрации: {{ profile.svid_gos_reg }}</div>{% endif %} <div id="kpp">КПП: {{ profile.kpp }}</div>
{% if profile.ip_reg_date %}<div id="ip_reg_date">Дата регистрации ИП: {{ profile.ip_reg_date }}</div>{% endif %} {% endif %}
{% endif %}
</div>
{% if profile.is_org %} {% if profile.ogrn %}
<div id="org_boss_title_and_fio" class="block org-boss-info"> <div id="ogrn">
{% if profile.get_boss_fio or profile.boss_title %} {% if profile.is_ip %}ОГРНИП{% else %}ОГРН{% endif %}: {{ profile.ogrn }}
<div id="org_boss_title_and_fio"> </div>
{% if profile.boss_title %}{{ profile.boss_title }}: {% endif %}{{ profile.get_boss_fio }} {% endif %}
</div>
{% endif %}
{% if profile.na_osnovanii %}
<div id="na_osnovanii">Действует на основании {{ profile.na_osnovanii }}</div>
{% endif %}
</div>
{% endif %}
{% if profile.get_glavbuh_fio %}
<div id="glavbuh" class="block">Главный бухгалтер: {{ profile.get_glavbuh_fio }}</div>
{% endif %}
<div id="bank_account" class="accounts">
{% for account in accounts %}
<div id="account_{{ account.pk }}" class="block">
<div>БИК: {{ account.bik }}</div>
<div>Банк: {{ account.name }}</div>
<div>К/С: {{ account.korr_account }}</div>
<div>Р/С: {{ account.account }}</div>
</div>
{% endfor %}
</div>
<div id="contact_info" class="block contacts"> {% if profile.okpo %}<div id="okpo">ОКПО: {{ profile.okpo }}</div>{% endif %}
{% if profile.is_org %}
{% if profile.jur_address %}
<div id="jur_address">Юридический адрес: {{ profile.jur_address }}</div>
{% endif %}
{% endif %}
{% if profile.real_address %} {% if profile.is_ip %}
<div id="real_address"> {% if profile.svid_gos_reg %}<div id="svid_gos_reg">Свид-во о гос. регистрации: {{ profile.svid_gos_reg }}</div>{% endif %}
{% if profile.is_ip %}Адрес{% else %}Фактический адрес{% endif %}: {{ profile.real_address }} {% if profile.ip_reg_date %}<div id="ip_reg_date">Дата регистрации ИП: {{ profile.ip_reg_date }}</div>{% endif %}
{% endif %}
</div> </div>
{% endif %}
{% if profile.get_full_phone %}<div id="phone">Телефон: {{ profile.get_full_phone }}</div>{% endif %}
{% if profile.get_full_fax %}<div id="fax">Факс: {{ profile.get_full_fax }}</div>{% endif %}
{% if profile.email %}<div id="email">Электронная почта: {{ profile.email }}</div>{% endif %}
{% if profile.site %}<div id="site">Сайт: {{ profile.site }}</div>{% endif %}
</div>
</div>
</div>
<div class="profile-col2"> {% if profile.is_org %}
<div class="info-bar">В карточке показывать:</div> <div id="org_boss_title_and_fio" class="block org-boss-info">
{% if profile.get_boss_fio or profile.boss_title %}
<div class="profile-filters-form"> <div id="org_boss_title_and_fio">
<form id="profile-filters-form" action="" method="post" autocomplete="off"> {% if profile.boss_title %}{{ profile.boss_title }}: {% endif %}{{ profile.get_boss_fio }}
{% csrf_token %} </div>
{% endif %}
{% if profile.na_osnovanii %}
<div id="na_osnovanii">Действует на основании {{ profile.na_osnovanii }}</div>
{% endif %}
</div>
{% endif %}
<div class="block info"> {% if profile.get_glavbuh_fio %}
<div><label for="{{ filters_form.show_profile_type.auto_id }}"> <div id="glavbuh" class="block">Главный бухгалтер: {{ profile.get_glavbuh_fio }}</div>
{{ filters_form.show_profile_type }} {{ filters_form.show_profile_type.label }}</label></div> {% endif %}
{% if profile.is_ip %} <div id="bank_account" class="accounts">
<div class="level-2"><label for="{{ filters_form.show_ip_boss_fio.auto_id }}"{% if not profile.get_boss_fio %} title='Вы не заполнили поле "ФИО"'{% endif %}> {# включено всегда #} {% for account in accounts %}
{{ filters_form.show_ip_boss_fio }} {{ filters_form.show_ip_boss_fio.label }}</label></div> <div id="account_{{ account.pk }}" class="block">
{% endif %} <div>БИК: {{ account.bik }}</div>
<div>Банк: {{ account.name }}</div>
<div>К/С: {{ account.korr_account }}</div>
<div>Р/С: {{ account.account }}</div>
</div>
{% endfor %}
</div>
<div id="contact_info" class="block contacts">
{% if profile.is_org %} {% if profile.is_org %}
<div class="level-2"><label for="{{ filters_form.show_name.auto_id }}"{% if not profile.name %} title='Вы не заполнили поле "Краткое название организации"'{% endif %}> {# включено всегда #} {% if profile.jur_address %}
{{ filters_form.show_name }} {{ filters_form.show_name.label }}</label></div> <div id="jur_address">Юридический адрес: {{ profile.jur_address }}</div>
<div class="level-2"><label for="{{ filters_form.show_full_name.auto_id }}"{% if not profile.full_name %} title='Вы не заполнили поле "Полное название организации"'{% endif %}> {% endif %}
{{ filters_form.show_full_name }} {{ filters_form.show_full_name.label }}</label></div>
{% endif %} {% endif %}
<div class="level-2"><label for="{{ filters_form.show_inn.auto_id }}"{% if not profile.inn %} title='Вы не заполнили поле "ИНН"'{% endif %}> {% if profile.real_address %}
{{ filters_form.show_inn }} {{ filters_form.show_inn.label }}</label></div> <div id="real_address">
{% if profile.is_ip %}Адрес{% else %}Фактический адрес{% endif %}: {{ profile.real_address }}
{% if profile.is_org %} </div>
<div class="level-2"><label for="{{ filters_form.show_kpp.auto_id }}"{% if not profile.kpp %} title='Вы не заполнили поле "КПП"'{% endif %}>
{{ filters_form.show_kpp }} {{ filters_form.show_kpp.label }}</label></div>
{% endif %} {% endif %}
<div class="level-2"><label for="{{ filters_form.show_ogrn.auto_id }}"{% if not profile.ogrn %} title='Вы не заполнили поле "{% if profile.is_ip %}ОГРНИП{% else %}ОГРН{% endif %}"'{% endif %}> {% if profile.get_full_phone %}<div id="phone">Телефон: {{ profile.get_full_phone }}</div>{% endif %}
{{ filters_form.show_ogrn }} {{ filters_form.show_ogrn.label }}</label></div> {% if profile.get_full_fax %}<div id="fax">Факс: {{ profile.get_full_fax }}</div>{% endif %}
<div class="level-2"><label for="{{ filters_form.show_okpo.auto_id }}"{% if not profile.okpo %} title='Вы не заполнили поле "ОКПО"'{% endif %}> {% if profile.email %}<div id="email">Электронная почта: {{ profile.email }}</div>{% endif %}
{{ filters_form.show_okpo }} {{ filters_form.show_okpo.label }}</label></div> {% if profile.site %}<div id="site">Сайт: {{ profile.site }}</div>{% endif %}
</div>
{% if profile.is_ip %}
<div class="level-2"><label for="{{ filters_form.show_svid_gos_reg.auto_id }}"{% if not profile.svid_gos_reg %} title='Вы не заполнили поле "Свид-во о гос. регистрации"'{% endif %}>
{{ filters_form.show_svid_gos_reg }} {{ filters_form.show_svid_gos_reg.label }}</label></div>
<div class="level-2"><label for="{{ filters_form.show_ip_reg_date.auto_id }}"{% if not profile.ip_reg_date %} title='Вы не заполнили поле "Дата регистрации ИП"'{% endif %}>
{{ filters_form.show_ip_reg_date }} {{ filters_form.show_ip_reg_date.label }}</label></div>
{% endif %}
</div> </div>
<div class="buttons reqs_btns">
{% if profile.is_org %} <input type="submit" class="yellow-btn printer" name="download-pdf" value="Вывод на печать" />
<div class="block org-boss-info"> <input type="submit" class="black-btn envelope" name="email-pdf" value="Отправить" />
<label for="{{ filters_form.show_org_boss_title_and_fio.auto_id }}"{% if not profile.get_boss_fio %} title='Вы не заполнили поле "ФИО руководителя"'{% endif %}>
{{ filters_form.show_org_boss_title_and_fio }} {{ filters_form.show_org_boss_title_and_fio.label }}</label>
<div class="level-2"><label for="{{ filters_form.show_na_osnovanii.auto_id }}"{% if not profile.na_osnovanii %} title='Вы не заполнили поле "Действует на основании"'{% endif %}>
{{ filters_form.show_na_osnovanii }} {{ filters_form.show_na_osnovanii.label }}</label></div>
</div> </div>
{% endif %} </div>
<div class="block"> <div class="profile-col2">
<label for="{{ filters_form.show_glavbuh.auto_id }}"{% if not profile.get_glavbuh_fio %} title='Вы не заполнили поле "Главный бухгалтер"'{% endif %}> <div class="info-bar">В карточке показывать:</div>
{{ filters_form.show_glavbuh }} {{ filters_form.show_glavbuh.label }}</label>
</div> <div class="profile-filters-form">
<div class="block info">
<div><label for="{{ filters_form.show_profile_type.auto_id }}">
{{ filters_form.show_profile_type }} {{ filters_form.show_profile_type.label }}</label></div>
{% if profile.is_ip %}
<div class="level-2"><label for="{{ filters_form.show_ip_boss_fio.auto_id }}"{% if not profile.get_boss_fio %} title='Вы не заполнили поле "ФИО"'{% endif %}> {# включено всегда #}
{{ filters_form.show_ip_boss_fio }} {{ filters_form.show_ip_boss_fio.label }}</label></div>
{% endif %}
{% if profile.is_org %}
<div class="level-2"><label for="{{ filters_form.show_name.auto_id }}"{% if not profile.name %} title='Вы не заполнили поле "Краткое название организации"'{% endif %}> {# включено всегда #}
{{ filters_form.show_name }} {{ filters_form.show_name.label }}</label></div>
<div class="level-2"><label for="{{ filters_form.show_full_name.auto_id }}"{% if not profile.full_name %} title='Вы не заполнили поле "Полное название организации"'{% endif %}>
{{ filters_form.show_full_name }} {{ filters_form.show_full_name.label }}</label></div>
{% endif %}
<div class="level-2"><label for="{{ filters_form.show_inn.auto_id }}"{% if not profile.inn %} title='Вы не заполнили поле "ИНН"'{% endif %}>
{{ filters_form.show_inn }} {{ filters_form.show_inn.label }}</label></div>
{% if profile.is_org %}
<div class="level-2"><label for="{{ filters_form.show_kpp.auto_id }}"{% if not profile.kpp %} title='Вы не заполнили поле "КПП"'{% endif %}>
{{ filters_form.show_kpp }} {{ filters_form.show_kpp.label }}</label></div>
{% endif %}
<div class="level-2"><label for="{{ filters_form.show_ogrn.auto_id }}"{% if not profile.ogrn %} title='Вы не заполнили поле "{% if profile.is_ip %}ОГРНИП{% else %}ОГРН{% endif %}"'{% endif %}>
{{ filters_form.show_ogrn }} {{ filters_form.show_ogrn.label }}</label></div>
<div class="level-2"><label for="{{ filters_form.show_okpo.auto_id }}"{% if not profile.okpo %} title='Вы не заполнили поле "ОКПО"'{% endif %}>
{{ filters_form.show_okpo }} {{ filters_form.show_okpo.label }}</label></div>
{% if profile.is_ip %}
<div class="level-2"><label for="{{ filters_form.show_svid_gos_reg.auto_id }}"{% if not profile.svid_gos_reg %} title='Вы не заполнили поле "Свид-во о гос. регистрации"'{% endif %}>
{{ filters_form.show_svid_gos_reg }} {{ filters_form.show_svid_gos_reg.label }}</label></div>
<div class="level-2"><label for="{{ filters_form.show_ip_reg_date.auto_id }}"{% if not profile.ip_reg_date %} title='Вы не заполнили поле "Дата регистрации ИП"'{% endif %}>
{{ filters_form.show_ip_reg_date }} {{ filters_form.show_ip_reg_date.label }}</label></div>
{% endif %}
</div>
{% if profile.is_org %}
<div class="block org-boss-info">
<label for="{{ filters_form.show_org_boss_title_and_fio.auto_id }}"{% if not profile.get_boss_fio %} title='Вы не заполнили поле "ФИО руководителя"'{% endif %}>
{{ filters_form.show_org_boss_title_and_fio }} {{ filters_form.show_org_boss_title_and_fio.label }}</label>
<div class="block accounts"> <div class="level-2"><label for="{{ filters_form.show_na_osnovanii.auto_id }}"{% if not profile.na_osnovanii %} title='Вы не заполнили поле "Действует на основании"'{% endif %}>
<div><label for="{{ filters_form.show_bank_account.auto_id }}"{% if not accounts %} title='Вы не добавили ни одного Расчётного счёта'{% endif %}> {{ filters_form.show_na_osnovanii }} {{ filters_form.show_na_osnovanii.label }}</label></div>
{{ filters_form.show_bank_account }} {{ filters_form.show_bank_account.label }}</label></div> </div>
{% endif %}
{% if filters_form.bank_account %} <div class="block">
{{ filters_form.bank_account }} <label for="{{ filters_form.show_glavbuh.auto_id }}"{% if not profile.get_glavbuh_fio %} title='Вы не заполнили поле "Главный бухгалтер"'{% endif %}>
{% endif %} {{ filters_form.show_glavbuh }} {{ filters_form.show_glavbuh.label }}</label>
</div> </div>
<div class="block contacts"> <div class="block accounts">
<div><label for="{{ filters_form.show_contact_info.auto_id }}"> <div><label for="{{ filters_form.show_bank_account.auto_id }}"{% if not accounts %} title='Вы не добавили ни одного Расчётного счёта'{% endif %}>
{{ filters_form.show_contact_info }} {{ filters_form.show_contact_info.label }}</label></div> {{ filters_form.show_bank_account }} {{ filters_form.show_bank_account.label }}</label></div>
{% if profile.is_org %} {% if filters_form.bank_account %}
<div class="level-2"><label for="{{ filters_form.show_jur_address.auto_id }}"{% if not profile.jur_address %} title='Вы не заполнили поле "Юридический (почтовый) адрес"'{% endif %}> {{ filters_form.bank_account }}
{{ filters_form.show_jur_address }} {{ filters_form.show_jur_address.label }}</label></div> {% endif %}
{% endif %} </div>
<div class="level-2"><label for="{{ filters_form.show_real_address.auto_id }}"{% if not profile.real_address %} title='Вы не заполнили поле "Фактический адрес"'{% endif %}> <div class="block contacts">
{{ filters_form.show_real_address }} {{ filters_form.show_real_address.label }}</label></div> <div><label for="{{ filters_form.show_contact_info.auto_id }}">
<div class="level-2"><label for="{{ filters_form.show_phone.auto_id }}"{% if not profile.get_full_phone %} title='Вы не заполнили поле "Телефон"'{% endif %}> {{ filters_form.show_contact_info }} {{ filters_form.show_contact_info.label }}</label></div>
{{ filters_form.show_phone }} {{ filters_form.show_phone.label }}</label></div>
<div class="level-2"><label for="{{ filters_form.show_fax.auto_id }}"{% if not profile.get_full_fax %} title='Вы не заполнили поле "Факс"'{% endif %}> {% if profile.is_org %}
{{ filters_form.show_fax }} {{ filters_form.show_fax.label }}</label></div> <div class="level-2"><label for="{{ filters_form.show_jur_address.auto_id }}"{% if not profile.jur_address %} title='Вы не заполнили поле "Юридический (почтовый) адрес"'{% endif %}>
<div class="level-2"><label for="{{ filters_form.show_email.auto_id }}"{% if not profile.email %} title='Вы не заполнили поле "Электронная почта"'{% endif %}> {{ filters_form.show_jur_address }} {{ filters_form.show_jur_address.label }}</label></div>
{{ filters_form.show_email }} {{ filters_form.show_email.label }}</label></div> {% endif %}
<div class="level-2"><label for="{{ filters_form.show_site.auto_id }}"{% if not profile.site %} title='Вы не заполнили поле "Сайт"'{% endif %}>
{{ filters_form.show_site }} {{ filters_form.show_site.label }}</label></div> <div class="level-2"><label for="{{ filters_form.show_real_address.auto_id }}"{% if not profile.real_address %} title='Вы не заполнили поле "Фактический адрес"'{% endif %}>
</div> {{ filters_form.show_real_address }} {{ filters_form.show_real_address.label }}</label></div>
<div class="level-2"><label for="{{ filters_form.show_phone.auto_id }}"{% if not profile.get_full_phone %} title='Вы не заполнили поле "Телефон"'{% endif %}>
{{ filters_form.show_phone }} {{ filters_form.show_phone.label }}</label></div>
<div class="level-2"><label for="{{ filters_form.show_fax.auto_id }}"{% if not profile.get_full_fax %} title='Вы не заполнили поле "Факс"'{% endif %}>
{{ filters_form.show_fax }} {{ filters_form.show_fax.label }}</label></div>
<div class="level-2"><label for="{{ filters_form.show_email.auto_id }}"{% if not profile.email %} title='Вы не заполнили поле "Электронная почта"'{% endif %}>
{{ filters_form.show_email }} {{ filters_form.show_email.label }}</label></div>
<div class="level-2"><label for="{{ filters_form.show_site.auto_id }}"{% if not profile.site %} title='Вы не заполнили поле "Сайт"'{% endif %}>
{{ filters_form.show_site }} {{ filters_form.show_site.label }}</label></div>
</div>
<div class="block logo"> <div class="block logo">
<div><label for="">Логотип</label></div> <div><label for="">Логотип</label></div>
<div class="level-2"><label for="{{ filters_form.show_logo.auto_id }}"{% if not profile.logo %} title='Вы не загрузили логотип'{% endif %}> <div class="level-2"><label for="{{ filters_form.show_logo.auto_id }}"{% if not profile.logo %} title='Вы не загрузили логотип'{% endif %}>
{{ filters_form.show_logo }} {{ filters_form.show_logo.label }}</label></div> {{ filters_form.show_logo }} {{ filters_form.show_logo.label }}</label></div>
</div> </div>
<div class="buttons">
<input type="submit" name="download-pdf" value="Загрузить для печати" /><br /><br />
<input type="submit" class="button-as-link" name="email-pdf" value="Отправить по почте" />
</div> </div>
</form> </div>
</div> </div>
</div> </div>
</form>
{% endblock %} {% endblock %}
{% block dialogs %} {% block dialogs %}

@ -0,0 +1,49 @@
{% load menu_tags %}
{% url 'docs_invoice_list' as url_invoice_list %}
{% url 'docs_faktura_list' as url_faktura_list %}
{% url 'docs_nakladn_list' as url_nakladn_list %}
{% url 'docs_aktrabot_list' as url_aktrabot_list %}
{% url 'docs_platejka_list' as url_platejka_list %}
{% url 'docs_dover_list' as url_dover_list %}
{% url 'docs_aktsverki_list' as url_aktsverki_list %}
{% url 'customer_profile_view' as customer_profile_view %}
{% url 'customer_clients_list' as customer_clients_list %}
{% if user.is_anonymous %}
{% for child in children|slice:":4" %}
<li class="child{% if child.selected %} selected{% endif %}{% if child.ancestor %} ancestor{% endif %}{% if child.sibling %} sibling{% endif %}{% if child.descendant %} descendant{% endif %}">
<a href="{{ child.attr.redirect_url|default:child.get_absolute_url }}">{{ child.get_menu_title }}</a>
{% if child.children %}
<ul>
{% show_menu from_level to_level extra_inactive extra_active template "" "" child %}
</ul>
{% endif %}
</li>
{% endfor %}
{% else %}
<li class="child{% if request.path == url_invoice_list %} selected{% endif %}">
<a href="{{ url_invoice_list }}">СЧЕТА</a>
</li>
<li class="child{% if request.path == url_aktrabot_list %} selected{% endif %}">
<a href="{{ url_aktrabot_list }}">АКТЫ ВЫПОЛНЕННЫХ РАБОТ</a>
</li>
<li class="child{% if request.path == url_faktura_list %} selected{% endif %}">
<a href="{{ url_faktura_list }}">СЧЕТА-ФАКТУРЫ</a>
</li>
{% endif %}
<li class="">
<a href="#">Другие документы</a>
{% if child.children %}
<ul>
{% show_menu from_level to_level extra_inactive extra_active template "" "" child %}
</ul>
{% endif %}
</li>
<li class="yellow child{% if request.path == customer_profile_view %} selected{% endif %}">
<a href="{{ customer_profile_view }}">МОИ РЕКВИЗИТЫ</a>
</li>
<li class="yellow child{% if request.path == customer_clients_list %} selected{% endif %}">
<a href="{{ customer_clients_list }}">МОИ КОНТРАГЕНТЫ</a>
</li>

@ -3,22 +3,74 @@
{% block title %}Главная{% endblock %} {% block title %}Главная{% endblock %}
{% block content %} {% block bg %}
<div id="bg-index">&nbsp;</div>
<div id="bg-index-promo">&nbsp;</div>
{% endblock %}
<div style="padding: 5px 20px 10px 20px; background-color: #f9f9f9;"> {% block content %}
<h1>Быстрое создание счетов, актов, накладных и других бухгалтерских документов в Excel или PDF</h1>
<p>Перед вами онлайн сервис для создания и хранения первичных бухгалтерских документов. Здесь вы можете за несколько секунд создать и скачать в Excel или PDF: счёт на оплату, накладную, акт выполненных работ, платёжное поручение, акт сверки.</p> <div class='index-banner-text'>
<p>Помимо создания документов, здесь вы можете контролировать их оплату, возврат к вам закрывающих документов.</p>
{% placeholder "content" %} {% placeholder "content" %}
{% if not user.is_authenticated %} {% if not user.is_authenticated %}
<p> <div class="index-banner-btn">
<a style="font-size: large;" href="{% url 'myauth_register' %}">Попробовать бесплатно</a><br /> <p>Подключите бесплатный пробный период на 45 дней
Пробный период - 45 дней без ограничений без ограничений функциональности сервиса!</p>
</p> <a class="index-register" href="{% url 'myauth_register' %}">Попробовать бесплатно</a><br />
</div>
{% endif %} {% endif %}
</div> </div>
<div class="index-promo">
<div class="index-promo-text">
<div class='round round1'>
</div>
<div class='left text'>
<h2>Регистрируетесь</h2>
<p>Заполняете данные о своей компании, логин и пароль для входа в систему</p>
</div>
</div>
<div class="index-promo-text">
<div class='round round2'>
</div>
<div class='left text'>
<h2>Создаёте</h2>
<p>Документы по всем нормам и правилам документооборота РФ</p>
</div>
</div>
<div class="index-promo-text">
<div class='round round3'>
</div>
<div class='left text'>
<h2>Используете</h2>
<p>Возможности сервиса для хранения, отправки и редактирования документов</p>
</div>
</div>
</div>
<div class="clear"></div> <div class="clear"></div>
<h2>Почему Документор?</h2>
<div id="reasons">
{% placeholder "reasons" %}
</div>
{% endblock %}
{% block bottom_wide %}
<div id='index-yellow-banner'>
<div class='w1200'>
<div class='lamp left'></div>
<div class='text left'>
<a href='#'>Бесплатный пробный доступ на 45 дней</a>
<p>Никаких ограничений по возможностям и по количеству документов.</p>
<p>Никаких навязчивых звонков, чтобы "помочь вам купить лицензию".</p>
<p>Никаких обязательств с вашей стороны: понравится вам Документор - купите лицензию;</p>
<p>не понравится - просто забросите его и всё.</p>
<p>Попробуйте!</p>
</div>
<div class='btn left'>
<a href='#'>
Начать пробный период!
</a>
</div>
</div>
</div>
{% endblock %} {% endblock %}

@ -5,7 +5,7 @@
{% block content %} {% block content %}
<div style="padding: 5px 20px 10px 20px; background-color: #f9f9f9;"> <div>
{% placeholder "content" %} {% placeholder "content" %}
</div> </div>

@ -8,7 +8,7 @@ billiard==3.3.0.18
celery==3.1.12 celery==3.1.12
django-autocomplete-light==1.4.9 django-autocomplete-light==1.4.9
django-classy-tags==0.5.1 django-classy-tags==0.5.1
django-cms==3.0.3 # django-cms==3.0.3
django-debug-toolbar==1.2.1 django-debug-toolbar==1.2.1
django-filter==0.7 django-filter==0.7
django-mptt==0.6.1 django-mptt==0.6.1

Loading…
Cancel
Save