diff --git a/city/forms.py b/city/forms.py index 258b9877..8843c223 100644 --- a/city/forms.py +++ b/city/forms.py @@ -167,4 +167,17 @@ class CityDeleteForm(forms.ModelForm): class CityFilterForm(AdminFilterForm): - model = City \ No newline at end of file + country = forms.ChoiceField(choices=[('', '')]+[(item.id, item.name) for item in Country.objects.all()], required=False, + label='Страна') + model = City + + def filter(self): + qs = super(CityFilterForm, self).filter() + + data = self.cleaned_data + country_id = data['country'] + + + if country_id: + qs = qs.filter(country__id=country_id) + return qs diff --git a/conference/forms.py b/conference/forms.py index 05f8a0e1..98c08645 100644 --- a/conference/forms.py +++ b/conference/forms.py @@ -375,4 +375,16 @@ class TimeTableForm(forms.Form): class ConferenceFilterForm(AdminFilterForm): - model = Conference \ No newline at end of file + created = forms.DateField(required=False, label='Дата создания') + model = Conference + + def filter(self): + qs = super(ConferenceFilterForm, self).filter() + + data = self.cleaned_data + created = data['created'] + + if created: + + qs = qs.filter(created__startswith=created) + return qs diff --git a/conference/models.py b/conference/models.py index b79b5875..6767797e 100644 --- a/conference/models.py +++ b/conference/models.py @@ -53,6 +53,7 @@ class Conference(TranslatableModel, EventMixin, ExpoMixin): related_name='conference_city') place = models.ForeignKey('place_conference.PlaceConference', verbose_name='Место проведения', blank=True, null=True, on_delete=models.PROTECT, related_name='conference_place') + place_alt = models.CharField(blank=True, null=True, max_length=255) # alternative for object place theme = models.ManyToManyField('theme.Theme', verbose_name='Тематики', related_name='conference_themes') tag = models.ManyToManyField('theme.Tag', verbose_name='Теги', diff --git a/functions/form_check.py b/functions/form_check.py index e8c0954e..cfbe998f 100644 --- a/functions/form_check.py +++ b/functions/form_check.py @@ -31,10 +31,15 @@ def translit_with_separator(string, separator='-'): #make string unicode string = string.strip() string = u'%s'%string - string = string.replace(u'\u200e', '') #make string translit - st = pytils.translit.translify(string) + try: + st = pytils.translit.translify(string) + except ValueError: + # remove exception symbs(hack) + string = string.replace(u'\u200e', '') + string = string.replace(u'\u200b', '') + st = pytils.translit.translify(string) #replace "bad" symbols for '-'symbol st = st.replace('.', '') diff --git a/import_xls/excel_settings.py b/import_xls/excel_settings.py index 4a905ada..f8926b13 100644 --- a/import_xls/excel_settings.py +++ b/import_xls/excel_settings.py @@ -500,6 +500,8 @@ event_sett = { u'Участники':{u'field': u'members', u'func': to_int}, u'Страны':{u'field': u'stat_countries', u'func': unicode}, u'Площадь':{u'field': u'area', u'func': to_int}, + u'Мин стоимость':{u'field': u'min_price', u'func': to_int}, + u'Макс стоимость':{u'field': u'max_price', u'func': to_int}, u'Min_Raw кв.м.':{u'field': u'min_closed_area', u'func': to_int}, u'Max_Raw кв.м.':{u'field': u'max_closed_area', u'func': to_int}, u'Min_Pack кв.м.':{u'field': u'min_closed_equipped_area', u'func': to_int}, diff --git a/import_xls/import_forms.py b/import_xls/import_forms.py index 674c30fa..9ed993a7 100644 --- a/import_xls/import_forms.py +++ b/import_xls/import_forms.py @@ -330,13 +330,25 @@ class ImportEventForm(ImportForm): value = func(obj, cell, setting['label']) else: + value = func(cell) - try: - setattr(obj, field_name, value) - except ValueError: - continue + if field_name != 'place': + + try: + setattr(obj, field_name, value) + except ValueError: + continue + else: + if value is None: + setattr(obj, 'place_alt', cell) + else: + try: + setattr(obj, field_name, value) + except Exception: + setattr(obj, 'place_alt', cell) if not obj.url: obj.url = translit_with_separator(obj.name) + obj.is_published = True try: obj.save() diff --git a/import_xls/utils.py b/import_xls/utils.py index b664fc16..1951086d 100644 --- a/import_xls/utils.py +++ b/import_xls/utils.py @@ -30,6 +30,7 @@ def to_date(value): return None if isinstance(value, unicode) or isinstance(value, str): + try: t = time.strptime(value, "%d.%m.%Y") except ValueError: diff --git a/static/custom_js/main.js b/static/custom_js/main.js index 3c301189..a4ae5a0a 100644 --- a/static/custom_js/main.js +++ b/static/custom_js/main.js @@ -113,6 +113,12 @@ function postStat(data, textStatus){ $(document).ready(function(){ + $('#id_created').datetimepicker({ + todayHighlight: true, + format : 'yyyy-mm-dd', + minView:2 + }); + $('#photo_form').on('submit', function(e){ e.preventDefault(); var url = $(this).attr('action'); @@ -230,11 +236,7 @@ $(document).ready(function(){ }); // end on-of events - $('select').select2({ - width: 'element', - allowClear: true - });//end select @@ -485,5 +487,11 @@ $(document).ready(function(){ }); }); + $('select').select2({ + width: 'element', + allowClear: true + + });//end select + }); diff --git a/templates/admin/base.html b/templates/admin/base.html index 9861275b..f2e998d3 100644 --- a/templates/admin/base.html +++ b/templates/admin/base.html @@ -72,6 +72,9 @@ +{# datetimepicker #} + + {% block bot_scripts %} {% endblock %} diff --git a/templates/admin/exposition/exposition.html b/templates/admin/exposition/exposition.html index 4ef1496b..573c4950 100644 --- a/templates/admin/exposition/exposition.html +++ b/templates/admin/exposition/exposition.html @@ -39,9 +39,6 @@ --> - {# datetimepicker #} - -