удалил лишние переменные в админке после добавления мультизагруки изображений

remotes/origin/tests
Slava Kyrachevsky 9 years ago
parent 0074d64068
commit 257dd6e2de
  1. 7
      apps/conference/admin.py
  2. 7
      apps/exposition/admin.py
  3. 5
      apps/file/models.py
  4. 7
      apps/organiser/admin.py
  5. 4
      apps/place_conference/admin.py
  6. 5
      apps/place_exposition/admin.py
  7. 31
      proj/admin.py
  8. 7
      static/jQuery-filer/js/init.js
  9. 43
      templates/c_admin/includes/photo_form.html
  10. 5
      templates/c_admin/includes/photogallery.html
  11. 1
      templates/c_admin/place_conference/place_conference.html
  12. 1
      templates/c_admin/place_exposition/place_exposition.html

@ -9,7 +9,7 @@ from django.contrib.auth.decorators import login_required
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from django.core.context_processors import csrf from django.core.context_processors import csrf
from django.db import models from django.db import models
from django.forms.formsets import BaseFormSet, formset_factory from django.forms.formsets import formset_factory
from django.forms.models import modelformset_factory from django.forms.models import modelformset_factory
from django.http import HttpResponse, HttpResponseRedirect from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render_to_response from django.shortcuts import render_to_response
@ -36,15 +36,13 @@ from forms import (
from functions.admin_views import ( from functions.admin_views import (
AdminListView, AdminListView,
AdminView, AdminView,
stat_paginate_results, stat_paginate_results
# upload_photo
) )
from functions.custom_views import delete_object, objects_list from functions.custom_views import delete_object, objects_list
from functions.views_help import get_referer from functions.views_help import get_referer
from functions.admin import DefaultAdmin from functions.admin import DefaultAdmin
from haystack.query import SearchQuerySet from haystack.query import SearchQuerySet
from models import Conference, Statistic, TimeTable, Speaker from models import Conference, Statistic, TimeTable, Speaker
from photologue.forms import PhotoForm
from photologue.admin import upload_photo from photologue.admin import upload_photo
from theme.models import Tag from theme.models import Tag
@ -337,7 +335,6 @@ class ConferenceView(AdminView):
files = FileModel.objects.filter(content_type=ContentType.objects.get_for_model(obj),object_id=getattr(obj, 'id')) files = FileModel.objects.filter(content_type=ContentType.objects.get_for_model(obj),object_id=getattr(obj, 'id'))
context['files'] = files context['files'] = files
context['photo_form'] = PhotoForm()
context['timetable_form'] = TimeTableForm() context['timetable_form'] = TimeTableForm()
context['timetables'] = TimeTable.objects.filter(conference=obj) context['timetables'] = TimeTable.objects.filter(conference=obj)
return context return context

@ -8,7 +8,7 @@ from django.conf import settings
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from django.core.context_processors import csrf from django.core.context_processors import csrf
from django.forms.formsets import BaseFormSet, formset_factory from django.forms.formsets import formset_factory
from django.forms.models import modelformset_factory from django.forms.models import modelformset_factory
from django.http import HttpResponse, HttpResponseRedirect from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render_to_response from django.shortcuts import render_to_response
@ -26,14 +26,12 @@ from forms import (
from functions.admin_views import ( from functions.admin_views import (
AdminListView, AdminListView,
AdminView, AdminView,
stat_paginate_results, stat_paginate_results
# upload_photo
) )
from functions.custom_views import delete_object, objects_list from functions.custom_views import delete_object, objects_list
from functions.views_help import get_referer from functions.views_help import get_referer
from haystack.query import SearchQuerySet from haystack.query import SearchQuerySet
from models import Exposition, Statistic, TimeTable, TmpTimeTable from models import Exposition, Statistic, TimeTable, TmpTimeTable
from photologue.forms import PhotoForm
from photologue.admin import upload_photo from photologue.admin import upload_photo
from theme.models import Tag from theme.models import Tag
@ -337,7 +335,6 @@ class ExpositionView(AdminView):
files = FileModel.objects.filter(content_type=ContentType.objects.get_for_model(obj),object_id=getattr(obj, 'id')) files = FileModel.objects.filter(content_type=ContentType.objects.get_for_model(obj),object_id=getattr(obj, 'id'))
context['files'] = files context['files'] = files
context['photo_form'] = PhotoForm()
context['timetable_form'] = TimeTableForm() context['timetable_form'] = TimeTableForm()
context['timetables'] = TimeTable.objects.filter(exposition=obj) context['timetables'] = TimeTable.objects.filter(exposition=obj)
return context return context

@ -24,6 +24,7 @@ PURPOSES = (('photo', _(u'Фото')),
('preview2',_(u'Превью')), ('preview2',_(u'Превью')),
) )
class FileModel(TranslatableModel): class FileModel(TranslatableModel):
""" """
Create FileModel model Create FileModel model
@ -43,9 +44,9 @@ class FileModel(TranslatableModel):
""" """
type = filename.split('.')[-1] type = filename.split('.')[-1]
if type.upper() in IMG_TYPES: if type.upper() in IMG_TYPES:
return 'imgs/%s'%filename return 'imgs/%s' % filename
else: else:
return 'files/%s'%filename return 'files/%s' % filename
content_type = models.ForeignKey(ContentType, null=True) #limit_choices_to={'model__in': ('Country', 'City')} content_type = models.ForeignKey(ContentType, null=True) #limit_choices_to={'model__in': ('Country', 'City')}
object_id = models.PositiveIntegerField(blank=True, null=True) object_id = models.PositiveIntegerField(blank=True, null=True)

@ -1,6 +1,5 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from django.conf import settings from django.conf import settings
from photologue.forms import PhotoForm
from models import Organiser from models import Organiser
from theme.models import Tag from theme.models import Tag
from forms import OrganiserForm, OrganiserFilterForm from forms import OrganiserForm, OrganiserFilterForm
@ -12,6 +11,7 @@ class OrganiserListView(AdminListView):
form_class = OrganiserFilterForm form_class = OrganiserFilterForm
model = Organiser model = Organiser
class OrganiserView(AdminView): class OrganiserView(AdminView):
form_class = OrganiserForm form_class = OrganiserForm
model = Organiser model = Organiser
@ -57,8 +57,3 @@ class OrganiserView(AdminView):
return form return form
else: else:
return form_class() return form_class()
def get_context_data(self, **kwargs):
context = super(OrganiserView, self).get_context_data(**kwargs)
context['photo_form'] = PhotoForm()
return context

@ -189,7 +189,6 @@ def conference_change(request, url):
return render_to_response('place_conference_add.html', args) return render_to_response('place_conference_add.html', args)
from photologue.forms import PhotoForm
from functions.admin_views import AdminView from functions.admin_views import AdminView
from file.forms import FileModelForm, FileForm from file.forms import FileModelForm, FileForm
class PlaceConferenceView(AdminView): class PlaceConferenceView(AdminView):
@ -241,9 +240,6 @@ class PlaceConferenceView(AdminView):
context['file_form'] = FileForm(initial={'model': 'place_conference.PlaceConference'}) context['file_form'] = FileForm(initial={'model': 'place_conference.PlaceConference'})
files = FileModel.objects.filter(content_type=ContentType.objects.get_for_model(obj),object_id=getattr(obj, 'id')) files = FileModel.objects.filter(content_type=ContentType.objects.get_for_model(obj),object_id=getattr(obj, 'id'))
context['files'] = files context['files'] = files
context['photo_form'] = PhotoForm()
return context return context
class PlaceConferenceListView(AdminListView): class PlaceConferenceListView(AdminListView):

@ -16,7 +16,7 @@ from django.views.decorators.csrf import csrf_exempt
from haystack.query import SearchQuerySet from haystack.query import SearchQuerySet
from functions.custom_views import objects_list, delete_object from functions.custom_views import objects_list, delete_object
from functions.views_help import get_referer from functions.views_help import get_referer
from functions.admin_views import AdminView, AdminListView # , upload_photo, FormView from functions.admin_views import AdminView, AdminListView
from functions.http import JsonResponse from functions.http import JsonResponse
from exposition.admin import get_by_lang from exposition.admin import get_by_lang
@ -25,7 +25,6 @@ from models import PlaceExposition, Hall
from city.models import City from city.models import City
from file.models import FileModel, TmpFile from file.models import FileModel, TmpFile
from file.forms import FileModelForm, FileForm from file.forms import FileModelForm, FileForm
from photologue.forms import PhotoForm
from photologue.admin import upload_photo from photologue.admin import upload_photo
from place_conference.models import PlaceConference from place_conference.models import PlaceConference
from place_exposition.models import PlaceExposition from place_exposition.models import PlaceExposition
@ -257,8 +256,6 @@ class PlaceExpositionView(AdminView):
context['halls'] = list(Hall.objects.language().filter(place_exposition=self.obj)) context['halls'] = list(Hall.objects.language().filter(place_exposition=self.obj))
context['hall_form'] = HallForm() context['hall_form'] = HallForm()
context['photo_form'] = PhotoForm()
return context return context
def add_hall(request, place_id): def add_hall(request, place_id):

@ -108,28 +108,35 @@ def ajax_post_file(request, obj_id=None):
Returns 'file_list.html' template with existing files if id != None. Returns 'file_list.html' template with existing files if id != None.
""" """
if request.POST: if request.method == 'POST':
if not obj_id: if not obj_id:
raise Http404 raise Http404
file_form = FileForm(request.POST, request.FILES) file_form = FileForm(request.POST, request.FILES)
if file_form.is_valid(): if file_form.is_valid():
#takes data from hidden input "model" and initial Model # takes data from hidden input "model" and initial Model
Model = get_model(request.POST['model'].split('.')[0], request.POST['model'].split('.')[1]) Model = get_model(request.POST['model'].split('.')[0],
#initial model object request.POST['model'].split('.')[1])
# initial model object
obj = Model.objects.get(id=obj_id) obj = Model.objects.get(id=obj_id)
file = file_form.save(request.FILES, obj) file_form.save(request.FILES, obj)
files = FileModel.objects.filter(content_type=ContentType.objects.get_for_model(obj),object_id=getattr(obj, 'id')) files = FileModel.objects.filter(
content_type=ContentType.objects.get_for_model(obj),
object_id=getattr(obj, 'id')
)
return render_to_response('file_list.html', {'files' : files}) return render_to_response(
'c_admin/file_list.html', {'files': files}
)
else: else:
args = {} args = {
'languages': settings.LANGUAGES,
'file_form': file_form,
'obj_id': obj_id
}
args['languages'] = settings.LANGUAGES
args['file_form'] = file_form
args['obj_id'] = obj_id
args.update(csrf(request)) args.update(csrf(request))
return render_to_response('ajax_error_form.html', args) return render_to_response('c_admin/ajax_error_form.html', args)
else: else:
raise Http404 raise Http404

@ -124,7 +124,6 @@ function init_filer($target) {
onRemove: function(itemEl, file, id, listEl, boxEl, newInputEl, inputEl){ onRemove: function(itemEl, file, id, listEl, boxEl, newInputEl, inputEl){
var filerKit = inputEl.prop("jFiler"), var filerKit = inputEl.prop("jFiler"),
file_name = filerKit.files_list[id].name; file_name = filerKit.files_list[id].name;
console.log(itemEl);
$.get(itemEl.find('.jFiler-item-trash-action').attr('href')) $.get(itemEl.find('.jFiler-item-trash-action').attr('href'))
}, },
@ -159,9 +158,5 @@ function init_filer($target) {
var $uploaders = $('.file_upload_container'); var $uploaders = $('.file_upload_container');
$uploaders.each(function (i, uploader) { $uploaders.each(function (i, uploader) {
var $uploader = $(uploader), init_filer($(uploader));
fields = $uploader.data('fields').split('|'), // Массив названий полей для создания фото
languages = $uploader.data('languages').split('|'); // Массив языков, будет использоватся для генерации инпутов
init_filer($uploader);
}); });

@ -1,43 +0,0 @@
<div class="modal hide fade" id="photopopup" >
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true" id="close">&times;</button>
<h3>Добавить фото</h3>
</div>
<form method="post" class="form-horizontal" id="photo_form" enctype="multipart/form-data" action="{{ object.upload_photo_url }}"> {% csrf_token %}
<div class="modal-body">
<div class="control-group{% if form.image.errors %}error{% endif %}">
<label class="control-label">{{ form.image.label }}:</label>
<div class="controls">{{ form.image }}
<span class="help-inline">{{ form.image.errors }}</span>
</div>
</div>
<div class="control-group{% if form.sort.errors %}error{% endif %}">
<label class="control-label">{{ form.sort.label }}:</label>
<div class="controls">{{ form.sort }}
<span class="help-inline">{{ form.sort.errors }}</span>
</div>
</div>
{% with field='caption' form=form languages=languages %}
{% include 'c_admin/forms/multilang.html' %}
{% endwith %}
{% with field='title' form=form languages=languages %}
{% include 'c_admin/forms/multilang.html' %}
{% endwith %}
</div>
<div class="modal-footer">
<div class="controls">
<input class="btn btn-primary" type="submit" value="Добавить">
<input type="reset" class="btn" value="Отменить" data-dismiss="modal">
</div>
</div>
</form>
</div>

@ -7,10 +7,7 @@
<div class="box-content"> <div class="box-content">
{% if object %} {% if object %}
<div class="file_upload_container" <div class="file_upload_container"
data-upload-url="{{ object.upload_photo_url }}" data-upload-url="{{ object.upload_photo_url }}">
data-get-url="{{ object.upload_photo_url }}"
data-languages="ru|en"
data-fields="title|caption">
<input type="file" name="image" class="file_uploader"> <input type="file" name="image" class="file_uploader">
</div> </div>

@ -333,7 +333,6 @@
{% include 'c_admin/includes/hall_form.html' with form=hall_form object=object %} {% include 'c_admin/includes/hall_form.html' with form=hall_form object=object %}
{% include 'c_admin/includes/photo_form.html' with form=photo_form object=object %}
{% include 'c_admin/includes/file_form.html' with file_form=file_form object=object %} {% include 'c_admin/includes/file_form.html' with file_form=file_form object=object %}
{% endblock %} {% endblock %}

@ -393,7 +393,6 @@
{% include 'c_admin/includes/hall_form.html' with form=hall_form object=object %} {% include 'c_admin/includes/hall_form.html' with form=hall_form object=object %}
{% include 'c_admin/includes/photo_form.html' with form=photo_form object=object %}
{% include 'c_admin/includes/file_form.html' with file_form=file_form object=object %} {% include 'c_admin/includes/file_form.html' with file_form=file_form object=object %}
{% endblock %} {% endblock %}

Loading…
Cancel
Save