{{ title }}
{% endif %}{% endblock %} + {% block content %} + {% block object-tools %}{% endblock %} + {{ content }} + {% endblock %} + {% block sidebar_ %}{% endblock %} ++
diff --git a/conference/admin.py b/conference/admin.py
index f0bb365a..0f1d5d52 100644
--- a/conference/admin.py
+++ b/conference/admin.py
@@ -3,17 +3,25 @@
import json
import random
-from city.models import City
from django.conf import settings
+from django.contrib import admin
from django.contrib.auth.decorators import login_required
from django.contrib.contenttypes.models import ContentType
from django.core.context_processors import csrf
+from django.db import models
from django.forms.formsets import BaseFormSet, formset_factory
from django.forms.models import modelformset_factory
from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render_to_response
from django.utils import translation
+from django.utils.translation import ugettext_lazy as _
+
+from modeltranslation.admin import TabbedTranslationAdmin
+from sorl.thumbnail import get_thumbnail
+from sorl.thumbnail.admin.current import AdminImageWidget
+
from exposition.admin import get_by_lang
+from city.models import City
from file.forms import FileForm, FileModelForm
from file.models import FileModel, TmpFile
from forms import (
@@ -32,12 +40,39 @@ from functions.admin_views import (
)
from functions.custom_views import delete_object, objects_list
from functions.views_help import get_referer
+from functions.admin import DefaultAdmin
from haystack.query import SearchQuerySet
-from models import Conference, Statistic, TimeTable
+from models import Conference, Statistic, TimeTable, Speaker
from photologue.forms import PhotoForm
from theme.models import Tag
+class SpeakerAdmin(DefaultAdmin, TabbedTranslationAdmin):
+ list_display = ['fullname', 'company', 'position', 'thumb']
+ formfield_overrides = {
+ models.ImageField: {'widget': AdminImageWidget},
+ }
+ class Media:
+ css = {'all': ('client/css/jquery.fancybox.css',
+ 'client/lib/fancybox/helpers/jquery.fancybox-thumbs.css')}
+ js = ('client/js/jquery.mousewheel.min.js',
+ 'client/lib/fancybox/jquery.fancybox.pack.js',
+ 'client/lib/fancybox/helpers/jquery.fancybox-thumbs.js',
+ 'client/js/admin_thumbs.js')
+
+ def thumb(self, obj):
+ thumbnail = get_thumbnail(obj.photo, '75x75', crop='center',
+ quality=99)
+ body = '\
+ '.format(
+ obj.photo.url, thumbnail.url, obj.id)
+ return body
+ thumb.short_description = _(u'превью')
+ thumb.allow_tags = True
+
+admin.site.register(Speaker, SpeakerAdmin)
+
+
def conference_all(request):
"""
Return list of all conferences with pagination
diff --git a/conference/forms.py b/conference/forms.py
index 83e642f5..2e63c1c0 100644
--- a/conference/forms.py
+++ b/conference/forms.py
@@ -68,7 +68,9 @@ class ConferenceCreateForm(forms.Form):
web_page = forms.CharField(label=_(u'Веб страница'), required=False)
link = forms.CharField(label=_(u'Линк на регистрацию'), required=False)
foundation_year = forms.CharField(label=_(u'Год основания'), required=False)
+ periodic_once = forms.CharField(label=_(u'Проводится в n-й раз'), required=False)
members = forms.CharField(label=_(u'Участники'), required=False)
+ members_fc = forms.IntegerField(label=_(u'Ожидаемое количество участников'), required=False)
visitors = forms.CharField(label=_(u'Посетители'), required=False)
discount = forms.CharField(label=_(u'Cкидка(%)'), required=False)
#
@@ -148,7 +150,9 @@ class ConferenceCreateForm(forms.Form):
conference.link = data['link']
conference.web_page= data['web_page']
conference.foundation_year = data['foundation_year']
+ conference.periodic_once = data['periodic_once']
conference.members = data['members']
+ conference.members_fc = data['members_fc']
conference.visitors = data['visitors']
#
conference.currency = data['currency']
diff --git a/conference/migrations/0009_auto__add_speaker__add_field_conference_periodic_once__add_field_confe.py b/conference/migrations/0009_auto__add_speaker__add_field_conference_periodic_once__add_field_confe.py
new file mode 100644
index 00000000..cac4940a
--- /dev/null
+++ b/conference/migrations/0009_auto__add_speaker__add_field_conference_periodic_once__add_field_confe.py
@@ -0,0 +1,621 @@
+# -*- 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 'Speaker'
+ db.create_table(u'conference_speaker', (
+ (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('fullname', self.gf('django.db.models.fields.CharField')(max_length=255)),
+ ('fullname_ru', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)),
+ ('fullname_en', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)),
+ ('company', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)),
+ ('company_ru', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)),
+ ('company_en', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)),
+ ('position', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)),
+ ('position_ru', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)),
+ ('position_en', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)),
+ ('photo', self.gf('django.db.models.fields.files.ImageField')(max_length=100)),
+ ))
+ db.send_create_signal(u'conference', ['Speaker'])
+
+ # Adding field 'Conference.periodic_once'
+ db.add_column(u'conference_conference', 'periodic_once',
+ self.gf('django.db.models.fields.CharField')(max_length=10, null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Conference.programm_link'
+ db.add_column(u'conference_conference', 'programm_link',
+ self.gf('django.db.models.fields.URLField')(default='', max_length=255, blank=True),
+ keep_default=False)
+
+ # Adding field 'Conference.members_fc'
+ db.add_column(u'conference_conference', 'members_fc',
+ self.gf('django.db.models.fields.PositiveIntegerField')(null=True, blank=True),
+ keep_default=False)
+
+
+ def backwards(self, orm):
+ # Deleting model 'Speaker'
+ db.delete_table(u'conference_speaker')
+
+ # Deleting field 'Conference.periodic_once'
+ db.delete_column(u'conference_conference', 'periodic_once')
+
+ # Deleting field 'Conference.programm_link'
+ db.delete_column(u'conference_conference', 'programm_link')
+
+ # Deleting field 'Conference.members_fc'
+ db.delete_column(u'conference_conference', 'members_fc')
+
+
+ models = {
+ u'accounts.user': {
+ 'Meta': {'ordering': "['-rating']", 'object_name': 'User'},
+ 'blocked': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'company': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'users'", 'null': 'True', 'to': u"orm['company.Company']"}),
+ 'date_joined': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'date_modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'date_registered': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '255', 'db_index': 'True'}),
+ 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'is_admin': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'organiser': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['organiser.Organiser']", 'unique': 'True', 'null': 'True', 'on_delete': 'models.PROTECT', 'blank': 'True'}),
+ 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+ 'position': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'rating': ('django.db.models.fields.IntegerField', [], {'default': '100'}),
+ 'translator': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'user'", 'null': 'True', 'on_delete': 'models.PROTECT', 'to': u"orm['translator.Translator']", 'blank': 'True', 'unique': 'True'}),
+ 'url': ('django.db.models.fields.SlugField', [], {'max_length': '50', 'blank': 'True'}),
+ 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
+ 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255', 'db_index': 'True'})
+ },
+ u'auth.group': {
+ 'Meta': {'object_name': 'Group'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+ 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
+ },
+ u'auth.permission': {
+ 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'},
+ 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+ },
+ u'city.city': {
+ 'Meta': {'unique_together': '()', 'object_name': 'City', 'index_together': '()'},
+ 'code_IATA': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['directories.Iata']", 'null': 'True', 'blank': 'True'}),
+ 'country': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'cities'", 'null': 'True', 'on_delete': 'models.PROTECT', 'to': u"orm['country.Country']"}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'inflect': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'logo': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'blank': 'True'}),
+ 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'old_url': ('django.db.models.fields.CharField', [], {'max_length': '55'}),
+ 'phone_code': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'population': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'services': ('django.db.models.fields.BigIntegerField', [], {'default': 'None'}),
+ 'url': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'})
+ },
+ u'company.company': {
+ 'Meta': {'ordering': "['-rating', 'id']", 'unique_together': '()', 'object_name': 'Company', 'index_together': '()'},
+ 'address': ('functions.custom_fields.LocationField', [], {'blank': 'True'}),
+ 'blocked': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'city': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'companies'", 'null': 'True', 'on_delete': 'models.PROTECT', 'to': u"orm['city.City']"}),
+ 'country': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'companies'", 'null': 'True', 'on_delete': 'models.PROTECT', 'to': u"orm['country.Country']"}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'created_company'", 'null': 'True', 'to': u"orm['accounts.User']"}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+ 'facebook': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
+ 'fax': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'foundation': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'linkedin': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
+ 'logo': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'blank': 'True'}),
+ 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'phone': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'rating': ('django.db.models.fields.IntegerField', [], {'default': '100'}),
+ 'staff_number': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}),
+ 'tag': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'companies'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['theme.Tag']"}),
+ 'theme': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'companies'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['theme.Theme']"}),
+ 'twitter': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
+ 'url': ('django.db.models.fields.SlugField', [], {'max_length': '255'}),
+ 'vk': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
+ 'web_page': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'})
+ },
+ u'conference.conference': {
+ 'Meta': {'unique_together': '()', 'object_name': 'Conference', 'index_together': '()'},
+ 'audience': ('django.db.models.fields.BigIntegerField', [], {'default': 'None'}),
+ 'bad_url': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'canceled': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'canceled_by_administrator': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'city': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conference_city'", 'on_delete': 'models.PROTECT', 'to': u"orm['city.City']"}),
+ 'company': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'conference_companies'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['company.Company']"}),
+ 'country': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'conference_country'", 'on_delete': 'models.PROTECT', 'to': u"orm['country.Country']"}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'currency': ('functions.custom_fields.EnumField', [], {'default': "'RUB'", 'values': "('RUB', 'USD', 'EUR', 'RMB', 'GBP', 'AED', 'SGD', 'TRY', 'CZK', 'CHF', 'SEK', 'LKR', 'UAH', 'IDR', 'PLN', 'JPY')"}),
+ 'data_begin': ('django.db.models.fields.DateField', [], {'db_index': 'True'}),
+ 'data_end': ('django.db.models.fields.DateField', [], {}),
+ 'discount': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'expohit': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'foundation_year': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_published': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}),
+ 'link': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'logo': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'blank': 'True'}),
+ 'main': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['expobanner.MainPage']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}),
+ 'main_page': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'db_index': 'True'}),
+ 'max_price': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'members': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'members_choice': ('django.db.models.fields.PositiveSmallIntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'members_fc': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'min_price': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'moved': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'old_url': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '255'}),
+ 'org': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'organiser': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'conference_organisers'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['organiser.Organiser']"}),
+ 'paid_new': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['expobanner.Paid']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}),
+ 'periodic': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'periodic_once': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'photogallery': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['photologue.Gallery']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}),
+ 'place': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'conference_place'", 'null': 'True', 'on_delete': 'models.PROTECT', 'to': u"orm['place_conference.PlaceConference']"}),
+ 'place_alt': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'price_choice': ('django.db.models.fields.PositiveSmallIntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'price_choice_eur': ('django.db.models.fields.PositiveSmallIntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'price_eur': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'price_rub': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'programm_link': ('django.db.models.fields.URLField', [], {'max_length': '255', 'blank': 'True'}),
+ 'quality_label': ('django.db.models.fields.BigIntegerField', [], {'default': 'None'}),
+ 'rating': ('django.db.models.fields.IntegerField', [], {'default': '0', 'db_index': 'True'}),
+ 'services': ('django.db.models.fields.BigIntegerField', [], {'default': 'None'}),
+ 'tag': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'conference_tags'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['theme.Tag']"}),
+ 'tax': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'theme': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'conference_themes'", 'symmetrical': 'False', 'to': u"orm['theme.Theme']"}),
+ 'top': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['expobanner.Top']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}),
+ 'url': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '255'}),
+ 'users': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'conference_users'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['accounts.User']"}),
+ 'views': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+ 'visitors': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'visitors_choice': ('django.db.models.fields.PositiveSmallIntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'web_page': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'})
+ },
+ u'conference.conferencetranslation': {
+ 'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'ConferenceTranslation', 'db_table': "u'conference_conference_translation'", 'index_together': '()'},
+ 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'descriptions': ('django.db.models.fields.CharField', [], {'max_length': '250'}),
+ 'discount_description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'keywords': ('django.db.models.fields.CharField', [], {'max_length': '250'}),
+ 'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}),
+ 'main_themes': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'main_title': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['conference.Conference']"}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'time': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '250'})
+ },
+ u'conference.speaker': {
+ 'Meta': {'object_name': 'Speaker'},
+ 'company': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'company_en': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'company_ru': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'fullname': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'fullname_en': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'fullname_ru': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'photo': ('django.db.models.fields.files.ImageField', [], {'max_length': '100'}),
+ 'position': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'position_en': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'position_ru': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'})
+ },
+ u'conference.statistic': {
+ 'Meta': {'unique_together': '()', 'object_name': 'Statistic', 'index_together': '()'},
+ 'area': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'conference': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'statistic'", 'to': u"orm['conference.Conference']"}),
+ 'countries_number': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'members': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'visitors': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'year': ('django.db.models.fields.PositiveIntegerField', [], {})
+ },
+ u'conference.statistictranslation': {
+ 'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'StatisticTranslation', 'db_table': "u'conference_statistic_translation'", 'index_together': '()'},
+ 'countries': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}),
+ 'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['conference.Statistic']"})
+ },
+ u'conference.timetable': {
+ 'Meta': {'unique_together': '()', 'object_name': 'TimeTable', 'index_together': '()'},
+ 'begin': ('django.db.models.fields.DateTimeField', [], {}),
+ 'conference': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'business_program'", 'to': u"orm['conference.Conference']"}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'end': ('django.db.models.fields.DateTimeField', [], {}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'timetable_organiser': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'conf_timetable'", 'null': 'True', 'to': u"orm['organiser.Organiser']"})
+ },
+ u'conference.timetabletranslation': {
+ 'Meta': {'unique_together': "[('language_code', 'master')]", 'object_name': 'TimeTableTranslation', 'db_table': "u'conference_timetable_translation'", 'index_together': '()'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'language_code': ('django.db.models.fields.CharField', [], {'max_length': '15', 'db_index': 'True'}),
+ 'master': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'translations'", 'null': 'True', 'to': u"orm['conference.TimeTable']"}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'place': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'programe': ('django.db.models.fields.TextField', [], {}),
+ 'speaker': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'})
+ },
+ u'contenttypes.contenttype': {
+ 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+ 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ },
+ u'country.area': {
+ 'Meta': {'ordering': "['translations__name']", 'unique_together': '()', 'object_name': 'Area', 'index_together': '()'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
+ },
+ u'country.country': {
+ 'Meta': {'ordering': "['translations__name']", 'unique_together': '()', 'object_name': 'Country', 'index_together': '()'},
+ 'area': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['country.Area']"}),
+ 'big_cities': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'cities'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['city.City']"}),
+ 'capital': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'capital'", 'null': 'True', 'on_delete': 'models.PROTECT', 'to': u"orm['city.City']"}),
+ 'country_code': ('django.db.models.fields.CharField', [], {'max_length': '2'}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'currency': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['directories.Currency']", 'null': 'True', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'inflect': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'language': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['directories.Language']", 'null': 'True', 'blank': 'True'}),
+ 'latitude': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'logo': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'blank': 'True'}),
+ 'longitude': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'old_url': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '55'}),
+ 'phone_code': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'population': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'services': ('django.db.models.fields.BigIntegerField', [], {'default': 'None'}),
+ 'teritory': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'time_delivery': ('django.db.models.fields.PositiveSmallIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'timezone': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'url': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'})
+ },
+ u'directories.currency': {
+ 'Meta': {'unique_together': '()', 'object_name': 'Currency', 'index_together': '()'},
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '3'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
+ },
+ u'directories.iata': {
+ 'Meta': {'object_name': 'Iata'},
+ 'airport': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '4'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
+ },
+ u'directories.language': {
+ 'Meta': {'unique_together': '()', 'object_name': 'Language', 'index_together': '()'},
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '2'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'language': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ u'expobanner.banner': {
+ 'Meta': {'ordering': "['sort']", 'object_name': 'Banner'},
+ 'alt': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'cookie': ('django.db.models.fields.CharField', [], {'default': "'expo_b_default_popup'", 'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'country': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['country.Country']", 'null': 'True', 'blank': 'True'}),
+ 'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'customer': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['expobanner.Customer']", 'null': 'True', 'blank': 'True'}),
+ 'flash': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'fr': ('django.db.models.fields.DateField', [], {'default': 'datetime.datetime(2016, 10, 26, 0, 0)'}),
+ 'group': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'banners'", 'null': 'True', 'to': u"orm['expobanner.BannerGroup']"}),
+ 'html': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'img': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'link': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'often': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1'}),
+ 'paid': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'popup': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'sort': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '500'}),
+ 'stat_pswd': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+ 'text': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'theme': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['theme.Theme']", 'null': 'True', 'blank': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'to': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'url': ('django.db.models.fields.CharField', [], {'max_length': '1024'}),
+ 'urls': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'url_banners'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['expobanner.URL']"})
+ },
+ u'expobanner.bannergroup': {
+ 'Meta': {'ordering': "['name']", 'object_name': 'BannerGroup'},
+ 'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'height': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}),
+ 'speed': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '2000'}),
+ 'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'width': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '0'})
+ },
+ u'expobanner.customer': {
+ 'Meta': {'ordering': "['name']", 'object_name': 'Customer'},
+ 'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
+ },
+ u'expobanner.mainpage': {
+ 'Meta': {'ordering': "['-public']", 'object_name': 'MainPage'},
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'link': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['expobanner.Banner']"}),
+ 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'position': ('django.db.models.fields.PositiveIntegerField', [], {'default': '2', 'null': 'True', 'blank': 'True'}),
+ 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'stat_pswd': ('django.db.models.fields.CharField', [], {'max_length': '16'})
+ },
+ u'expobanner.paid': {
+ 'Meta': {'ordering': "['-public']", 'object_name': 'Paid'},
+ 'catalog': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'paid_catalog'", 'to': u"orm['expobanner.Banner']"}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'kind': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': '1', 'db_index': 'True'}),
+ 'logo': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'blank': 'True'}),
+ 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'official': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'paid_official'", 'to': u"orm['expobanner.Banner']"}),
+ 'organiser': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
+ 'participation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'paid_participation'", 'null': 'True', 'to': u"orm['expobanner.Banner']"}),
+ 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'stat_pswd': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+ 'tickets': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'paid_tickets'", 'to': u"orm['expobanner.Banner']"})
+ },
+ u'expobanner.top': {
+ 'Meta': {'ordering': "['position']", 'object_name': 'Top'},
+ 'base_catalog': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'catalog': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+ 'cities': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'top_in_set'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['city.City']"}),
+ 'country': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['country.Country']", 'null': 'True', 'blank': 'True'}),
+ 'excluded_cities': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['city.City']", 'null': 'True', 'blank': 'True'}),
+ 'excluded_tags': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['theme.Tag']", 'null': 'True', 'blank': 'True'}),
+ 'fr': ('django.db.models.fields.DateField', [], {'default': 'datetime.datetime(2016, 10, 26, 0, 0)'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'link': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['expobanner.Banner']"}),
+ 'months': ('functions.custom_fields.MonthMultiSelectField', [], {'default': 'None', 'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'position': ('django.db.models.fields.PositiveIntegerField', [], {'default': '2', 'null': 'True', 'blank': 'True'}),
+ 'stat_pswd': ('django.db.models.fields.CharField', [], {'max_length': '16'}),
+ 'theme': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['theme.Theme']", 'null': 'True', 'blank': 'True'}),
+ 'to': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'years': ('django.db.models.fields.PositiveSmallIntegerField', [], {'default': 'None', 'null': 'True', 'blank': 'True'})
+ },
+ u'expobanner.url': {
+ 'Meta': {'ordering': "['-created_at']", 'object_name': 'URL'},
+ 'created_at': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'regex': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'sites': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'site_urls'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['sites.Site']"}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '256'}),
+ 'updated_at': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'url': ('django.db.models.fields.CharField', [], {'max_length': '2048'})
+ },
+ u'file.filemodel': {
+ 'Meta': {'unique_together': '()', 'object_name': 'FileModel', 'index_together': '()'},
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']", 'null': 'True'}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'file_path': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}),
+ 'file_type': ('functions.custom_fields.EnumField', [], {'default': "'PDF'", 'values': "('PDF', 'DOC', 'TXT', 'OTHER', 'JPG', 'BMP', 'PNG', 'GIF')", 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'img_height': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'img_width': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'purpose': ('functions.custom_fields.EnumField', [], {'default': "'photo'", 'values': "['photo', 'flat', 'logo', 'map', 'scheme teritory', 'diplom', 'preview', 'preview2']"})
+ },
+ u'note.note': {
+ 'Meta': {'object_name': 'Note'},
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']", 'null': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+ 'text': ('django.db.models.fields.TextField', [], {}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['accounts.User']"})
+ },
+ u'organiser.organiser': {
+ 'Meta': {'unique_together': '()', 'object_name': 'Organiser', 'index_together': '()'},
+ 'active': ('django.db.models.fields.NullBooleanField', [], {'default': '0', 'null': 'True', 'blank': 'True'}),
+ 'address': ('functions.custom_fields.LocationField', [], {'null': 'True', 'blank': 'True'}),
+ 'city': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['city.City']", 'null': 'True', 'on_delete': 'models.PROTECT', 'blank': 'True'}),
+ 'country': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['country.Country']", 'null': 'True', 'on_delete': 'models.PROTECT', 'blank': 'True'}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+ 'events_number': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'facebook': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
+ 'fax': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'foundation': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'linkedin': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
+ 'logo': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'blank': 'True'}),
+ 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'phone': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'place_conference': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'organiser_place_conference'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['place_conference.PlaceConference']"}),
+ 'place_exposition': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'organiser_place_exposition'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['place_exposition.PlaceExposition']"}),
+ 'rating': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'staff_number': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'tag': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['theme.Tag']", 'null': 'True', 'blank': 'True'}),
+ 'theme': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['theme.Theme']", 'null': 'True', 'blank': 'True'}),
+ 'twitter': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
+ 'url': ('django.db.models.fields.SlugField', [], {'max_length': '255', 'blank': 'True'}),
+ 'vk': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
+ 'web_page': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'})
+ },
+ u'photologue.gallery': {
+ 'Meta': {'ordering': "['-date_added']", 'unique_together': '()', 'object_name': 'Gallery', 'index_together': '()'},
+ 'date_added': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'photos': ('sortedm2m.fields.SortedManyToManyField', [], {'blank': 'True', 'related_name': "'galleries'", 'null': 'True', 'symmetrical': 'False', 'to': u"orm['photologue.Photo']"}),
+ 'sites': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['sites.Site']", 'null': 'True', 'blank': 'True'}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '200'}),
+ 'tags': ('photologue.models.TagField', [], {'max_length': '255', 'blank': 'True'})
+ },
+ u'photologue.photo': {
+ 'Meta': {'ordering': "['sort']", 'unique_together': '()', 'object_name': 'Photo', 'index_together': '()'},
+ 'crop_from': ('django.db.models.fields.CharField', [], {'default': "'center'", 'max_length': '10', 'blank': 'True'}),
+ 'date_added': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'date_taken': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'effect': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'photo_related'", 'null': 'True', 'to': u"orm['photologue.PhotoEffect']"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100'}),
+ 'is_public': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'sites': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': u"orm['sites.Site']", 'null': 'True', 'blank': 'True'}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '200'}),
+ 'sort': ('django.db.models.fields.PositiveIntegerField', [], {'default': '10', 'null': 'True', 'db_index': 'True'}),
+ 'tags': ('photologue.models.TagField', [], {'max_length': '255', 'blank': 'True'}),
+ 'users': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['photologue.UserMark']", 'null': 'True', 'symmetrical': 'False'}),
+ 'view_count': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'})
+ },
+ u'photologue.photoeffect': {
+ 'Meta': {'object_name': 'PhotoEffect'},
+ 'background_color': ('django.db.models.fields.CharField', [], {'default': "'#FFFFFF'", 'max_length': '7'}),
+ 'brightness': ('django.db.models.fields.FloatField', [], {'default': '1.0'}),
+ 'color': ('django.db.models.fields.FloatField', [], {'default': '1.0'}),
+ 'contrast': ('django.db.models.fields.FloatField', [], {'default': '1.0'}),
+ 'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
+ 'filters': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}),
+ 'reflection_size': ('django.db.models.fields.FloatField', [], {'default': '0'}),
+ 'reflection_strength': ('django.db.models.fields.FloatField', [], {'default': '0.6'}),
+ 'sharpness': ('django.db.models.fields.FloatField', [], {'default': '1.0'}),
+ 'transpose_method': ('django.db.models.fields.CharField', [], {'max_length': '15', 'blank': 'True'})
+ },
+ u'photologue.usermark': {
+ 'Meta': {'object_name': 'UserMark'},
+ 'height': ('django.db.models.fields.PositiveSmallIntegerField', [], {}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'left': ('django.db.models.fields.PositiveSmallIntegerField', [], {}),
+ 'top': ('django.db.models.fields.PositiveSmallIntegerField', [], {}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'marks'", 'to': u"orm['accounts.User']"}),
+ 'width': ('django.db.models.fields.PositiveSmallIntegerField', [], {})
+ },
+ u'place_conference.placeconference': {
+ 'Meta': {'unique_together': '()', 'object_name': 'PlaceConference', 'index_together': '()'},
+ 'address': ('functions.custom_fields.LocationField', [], {}),
+ 'amount_halls': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'banquet_hall': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'catering': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'city': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'place_conferences'", 'on_delete': 'models.PROTECT', 'to': u"orm['city.City']"}),
+ 'conference_call': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'country': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['country.Country']", 'on_delete': 'models.PROTECT'}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+ 'exp_hall_area': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'exposition_hall': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'fax': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'foundation_year': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'hotel': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'logo': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'blank': 'True'}),
+ 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'multimedia_equipment': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'phone': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'top': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['expobanner.Top']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}),
+ 'total_capacity': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'translate_equipment': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'type': ('functions.custom_fields.EnumField', [], {'default': "'Convention centre'", 'values': "['Convention centre', 'Exposition centre']"}),
+ 'url': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}),
+ 'video_link': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'views': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+ 'virtual_tour': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
+ 'web_page': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
+ 'wifi': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'})
+ },
+ u'place_exposition.placeexposition': {
+ 'Meta': {'ordering': "['-rating', 'id']", 'unique_together': '()', 'object_name': 'PlaceExposition', 'index_together': '()'},
+ 'address': ('functions.custom_fields.LocationField', [], {}),
+ 'bank': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'business_centre': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'cafe': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'children_room': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'city': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'place_expositions'", 'on_delete': 'models.PROTECT', 'to': u"orm['city.City']"}),
+ 'closed_area': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'conference_centre': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'country': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['country.Country']", 'on_delete': 'models.PROTECT'}),
+ 'created': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'disabled_service': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+ 'event_in_year': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'fax': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'foundation_year': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_published': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'logo': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'blank': 'True'}),
+ 'mobile_application': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'modified': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+ 'online_registration': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'open_area': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'parking': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'partner': ('django.db.models.fields.NullBooleanField', [], {'default': '0', 'null': 'True', 'blank': 'True'}),
+ 'phone': ('django.db.models.fields.BigIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'photogallery': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['photologue.Gallery']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}),
+ 'press_centre': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'rating': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'terminals': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'top': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['expobanner.Top']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}),
+ 'total_area': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'total_halls': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'total_pavilions': ('django.db.models.fields.PositiveIntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'type': ('functions.custom_fields.EnumField', [], {'default': "'Exposition complex'", 'values': "['Exposition complex', 'Convention centre', 'Exposition centre']"}),
+ 'url': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '255'}),
+ 'views': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0'}),
+ 'virtual_tour': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
+ 'web_page': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
+ 'wifi': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'})
+ },
+ u'sites.site': {
+ 'Meta': {'ordering': "('domain',)", 'object_name': 'Site', 'db_table': "'django_site'"},
+ 'domain': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+ },
+ u'theme.tag': {
+ 'Meta': {'unique_together': '()', 'object_name': 'Tag', 'index_together': '()'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'inflect': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'old_url': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '255'}),
+ 'theme': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'tags'", 'on_delete': 'models.PROTECT', 'to': u"orm['theme.Theme']"}),
+ 'url': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '255'})
+ },
+ u'theme.theme': {
+ 'Meta': {'unique_together': '()', 'object_name': 'Theme', 'index_together': '()'},
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'inflect': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+ 'main_page_conf': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'db_index': 'True'}),
+ 'main_page_expo': ('django.db.models.fields.PositiveIntegerField', [], {'default': '0', 'db_index': 'True'}),
+ 'old_url': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '255'}),
+ 'types': ('django.db.models.fields.BigIntegerField', [], {'default': 'None'}),
+ 'url': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '255'})
+ },
+ u'translator.translator': {
+ 'Meta': {'unique_together': '()', 'object_name': 'Translator', 'index_together': '()'},
+ 'birth': ('django.db.models.fields.DateField', [], {}),
+ 'car': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'gender': ('functions.custom_fields.EnumField', [], {'default': "'male'", 'values': "('male', 'female')"}),
+ u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
+ }
+ }
+
+ complete_apps = ['conference']
\ No newline at end of file
diff --git a/conference/models.py b/conference/models.py
index 6e238b59..8b208e55 100644
--- a/conference/models.py
+++ b/conference/models.py
@@ -1,9 +1,7 @@
# -*- coding: utf-8 -*-
-
import copy
import datetime
-from bitfield import BitField
from django.conf import settings
from django.contrib.contenttypes import generic
from django.core.urlresolvers import reverse_lazy
@@ -12,6 +10,9 @@ from django.db.models import Q
from django.db.models.signals import post_save, pre_save
from django.utils import translation
from django.utils.translation import ugettext as _
+
+from bitfield import BitField
+
from exposition.manager import ClientManager
from functions.custom_fields import EnumField
from functions.db import db_table_exists
@@ -19,6 +20,7 @@ from functions.model_mixin import EventMixin, ExpoMixin
from functions.models_methods import ExpoManager, hvad_to_dict
from functions.signal_handlers import post_save_handler, pre_save_handler
from functions.translate import fill_with_signal
+from functions.files import gen_path
from hvad.models import TranslatableModel, TranslatedFields, TranslationManager
from photologue.models import Gallery
from service.models import Service
@@ -78,10 +80,12 @@ class Conference(TranslatableModel, EventMixin, ExpoMixin):
quality_label = BitField(flags=['ufi', 'rsva', 'exporating'])
+ periodic_once = models.CharField(verbose_name=_(u'Проводится в n-й раз'), help_text=_(u'10-ый'), max_length=10, blank=True, null=True)
periodic = models.FloatField(verbose_name=_(u'Переодичность'), blank=True, null=True)
audience = BitField(flags=[k for k, v in BIT_AUDIENCE])
web_page = models.CharField(verbose_name=_(u'Вебсайт'), max_length=255, blank=True)
link = models.CharField(verbose_name=_(u'Линк на регистрацию'), max_length=255, blank=True)
+ programm_link = models.URLField(verbose_name=_(u'Программа конференции'), max_length=255, blank=True)
discount = models.PositiveIntegerField(verbose_name=_(u'Скидка'), blank=True, null=True)
#
@@ -103,6 +107,10 @@ class Conference(TranslatableModel, EventMixin, ExpoMixin):
foundation_year = models.PositiveIntegerField(verbose_name=_(u'Год основания'), blank=True, null=True)
visitors = models.PositiveIntegerField(verbose_name=_(u'Посетитеил'), blank=True, null=True)
members = models.PositiveIntegerField(verbose_name=_(u'Участники'), blank=True, null=True)
+ # fc = forecast - прогноз
+ members_fc = models.PositiveIntegerField(verbose_name=_(u'Ожидаемое количество участников'), blank=True, null=True)
+
+
#translated fields
translations = TranslatedFields(
name = models.CharField(verbose_name=_(u'Название'), max_length=255),
@@ -225,6 +233,20 @@ class Conference(TranslatableModel, EventMixin, ExpoMixin):
return sum(self.objectstats_set.all().values_list('value', flat=True))
+class Speaker(models.Model):
+ class Meta:
+ verbose_name = _(u'Спикер')
+ verbose_name_plural = _(u'Спикеры')
+
+ fullname = models.CharField(_(u'Имя и фамилия'), max_length=255)
+ company = models.CharField(_(u'Компания'), max_length=255, null=True, blank=True)
+ position = models.CharField(_(u'Должность'), max_length=255, null=True, blank=True)
+ photo = models.ImageField(_(u'Фото'), upload_to=gen_path)
+
+ def __unicode__(self):
+ return unicode(self.fullname)
+
+
class Statistic(TranslatableModel):
conference = models.ForeignKey(Conference, related_name='statistic')
year = models.PositiveIntegerField(verbose_name=_(u'Год'))
diff --git a/conference/translation.py b/conference/translation.py
new file mode 100644
index 00000000..673be9b5
--- /dev/null
+++ b/conference/translation.py
@@ -0,0 +1,9 @@
+# -*- coding: utf-8 -*-
+from modeltranslation.translator import translator, TranslationOptions
+
+from .models import Speaker
+
+
+class SpeakerTranslationOptions(TranslationOptions):
+ fields = ('fullname', 'company', 'position',)
+translator.register(Speaker, SpeakerTranslationOptions)
diff --git a/functions/admin.py b/functions/admin.py
new file mode 100644
index 00000000..dc1200a9
--- /dev/null
+++ b/functions/admin.py
@@ -0,0 +1,10 @@
+# -*- coding: utf-8 -*-
+from django.contrib import admin
+
+
+class DefaultAdmin(admin.ModelAdmin):
+ change_list_template = 'admin/_change_list.html'
+ change_form_template = 'admin/_change_form.html'
+ delete_selected_confirmation_template = 'admin/_delete_selected_confirmation.html'
+ delete_confirmation_template = 'admin/_delete_confirmation.html'
+ object_history_template = 'admin/_object_history.html'
diff --git a/functions/files.py b/functions/files.py
index a2255076..a0c9123b 100644
--- a/functions/files.py
+++ b/functions/files.py
@@ -1,11 +1,14 @@
# -*- coding: utf-8 -*-
+import shutil, os
+from hashlib import md5
+from datetime import datetime
+from django.template.defaultfilters import slugify
from django.contrib.contenttypes.models import ContentType
from django.conf import settings
#models
from file.models import FileModel, TmpFile, Photo
from custom_fields import IMG_TYPES
-import shutil, os
def get_alternative_filename(directory, filename):
@@ -134,3 +137,11 @@ def check_tmp_timetables(object, key=None):
else:
pass
+
+
+def gen_path(instance, filename, path='images'):
+ """ Returns a file path where to save a photo/image """
+ ext = filename.rsplit('.')[-1].lower()
+ _hash = md5(slugify(filename) + str(datetime.now()))
+ new_filename = '%s.%s' % (_hash.hexdigest()[3:10], ext)
+ return u'%s/%s/%s' % (instance._meta.app_label, path, new_filename)
diff --git a/static/client/js/admin_thumbs.js b/static/client/js/admin_thumbs.js
new file mode 100644
index 00000000..53679721
--- /dev/null
+++ b/static/client/js/admin_thumbs.js
@@ -0,0 +1,19 @@
+$(document).ready(function() {
+ $('.fancybox-thumbs').fancybox({
+ prevEffect : 'none',
+ nextEffect : 'none',
+ openEffect : 'elastic',
+ closeEffect: 'elastic',
+
+ closeBtn : true,
+ arrows : true,
+ nextClick : true,
+
+ helpers : {
+ thumbs : {
+ width : 50,
+ height : 50
+ }
+ }
+ });
+});
diff --git a/templates/admin/_base.html b/templates/admin/_base.html
new file mode 100644
index 00000000..c3e5d425
--- /dev/null
+++ b/templates/admin/_base.html
@@ -0,0 +1,81 @@
+{% extends "c_admin/base.html" %}
+{% load admin_static %}
+
+{% block extrastyle %}
+
+
+ {% if LANGUAGE_BIDI %}{% endif %}
+
+
+
+{% endblock %}
+
+{% load i18n %}
+
+
+{% block body %}
+
+
+ {% blocktrans count cl.formset.errors|length as counter %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktrans %} +
+ {{ cl.formset.non_form_errors }} + {% endif %} +{% blocktrans with escaped_object=object %}Deleting the {{ object_name }} '{{ escaped_object }}' would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:{% endblocktrans %}
+{% blocktrans with escaped_object=object %}Deleting the {{ object_name }} '{{ escaped_object }}' would require deleting the following protected related objects:{% endblocktrans %}
+{% blocktrans with escaped_object=object %}Are you sure you want to delete the {{ object_name }} "{{ escaped_object }}"? All of the following related items will be deleted:{% endblocktrans %}
+{% blocktrans %}Deleting the selected {{ objects_name }} would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:{% endblocktrans %}
+{% blocktrans %}Deleting the selected {{ objects_name }} would require deleting the following protected related objects:{% endblocktrans %}
+{% blocktrans %}Are you sure you want to delete the selected {{ objects_name }}? All of the following objects and their related items will be deleted:{% endblocktrans %}
+ {% for deletable_object in deletable_objects %} +| {% trans 'Date/time' %} | +{% trans 'User' %} | +{% trans 'Action' %} | +
|---|---|---|
| {{ action.action_time|date:"DATETIME_FORMAT" }} | +{{ action.user.get_username }}{% if action.user.get_full_name %} ({{ action.user.get_full_name }}){% endif %} | +{{ action.change_message }} | +
{% trans "This object doesn't have a change history. It probably wasn't added via this admin site." %}
+{% endif %} +