def clonefile(request): import shutil, random parent = BaseObject.resolveID(request.session.get('main_object')) obj = BaseObject.resolveID(request.POST.get('object_id')) newpath = u'%s-%s.%s' % (obj.image.path, random.randint(0,10**9), obj.image.path.split('.')[-1]) shutil.copyfile(obj.image.path, newpath) Photo(parent=parent, author = request.user.is_anonymous and parent.author or request.user, image=newpath).save() return showdir(request)
def clonefile(request): import shutil, random parent = BaseObject.resolveID(request.session.get('main_object')) obj = BaseObject.resolveID(request.POST.get('object_id')) newpath = u'%s-%s.%s' % (obj.image.path, random.randint( 0, 10**9), obj.image.path.split('.')[-1]) shutil.copyfile(obj.image.path, newpath) Photo(parent=parent, author=request.user.is_anonymous and parent.author or request.user, image=newpath).save() return showdir(request)
def showdir(request): from time import mktime path = request.POST.get('path', None) if not path or path.strip() == '': parent = BaseObject.resolveID(request.session.get('main_object', None)) if not parent: parent = Page.objects.get(parent__isnull=True) else: from core.views import get_object_by_url parent = get_object_by_url(path) imgs = BaseObject.nodes(parents=[parent], types=['Photo']).all() ret = "" for r in imgs: try: ret += """<table class="imageBlock0" cellpadding="0" cellspacing="0" filename="%s" fname="%s" ext="%s" path="%s" linkto="%s" fsize="%d" date="%s" fwidth="%d" fheight="%d" md5="%s"> <tr><td valign="bottom" align="center"> <div class="imageBlock1"> <div class="imageImage"> <img src="%s" alt="%s" style="max-width:104px; max-height:116px;"/> </div> <div class="imageName">%s</div> </div> </td></tr></table>\n""" % (r.url(), r.url(), "jpg", r.url(), r.url(), r.image.size, r.date_modified.ctime(), r.image.width, r.image.height, r.id, r.thumb_url(), r.title, r.title) except: pass return HttpResponse(ret)
def delfile(request): for key in request.POST: if re.search('^md5', key): code = request.POST[key] obj = BaseObject.resolveID(code) obj.delete() return showdir(request)
def uploadfile(request): path = request.POST.get('path', None) if not path or path.strip() == '': parent = BaseObject.resolveID(request.session.get('main_object', None)) if not parent: parent = Page.objects.get(parent__isnull=True) else: from core.views import get_object_by_url parent = get_object_by_url(path) if (len(request.FILES)): for file in request.FILES.items(): if -1 == file[1].name.rfind('.'): return HttpResponseForbidden() (name, ext) = file[1].name.rsplit('.', 2) if not ext in ALLOWED_IMAGES: return HttpResponseForbidden() from django import forms meta_form = forms.models.modelform_factory(Photo, fields=('image', )) f = Photo(parent=parent, author=request.user.is_anonymous and parent.author or request.user) frm = meta_form({}, {'image': file[1]}, instance=f) if frm.is_valid(): frm.save() else: raise Exception("FRM IS NOT VALID") return HttpResponse("Готово.") else: return HttpResponse("Нет файлов для загрузки.")
def showdir(request): from time import mktime path = request.POST.get('path', None) if not path or path.strip() == '': parent = BaseObject.resolveID(request.session.get('main_object', None)) if not parent: parent = Page.objects.get(parent__isnull=True) else: from core.views import get_object_by_url parent = get_object_by_url(path) imgs = BaseObject.nodes(parents=[parent], types=['Photo']).all() ret = "" for r in imgs: try: ret += """<table class="imageBlock0" cellpadding="0" cellspacing="0" filename="%s" fname="%s" ext="%s" path="%s" linkto="%s" fsize="%d" date="%s" fwidth="%d" fheight="%d" md5="%s"> <tr><td valign="bottom" align="center"> <div class="imageBlock1"> <div class="imageImage"> <img src="%s" alt="%s" style="max-width:104px; max-height:116px;"/> </div> <div class="imageName">%s</div> </div> </td></tr></table>\n""" % (r.url(), r.url(), "jpg", r.url(), r.url(), r.image.size, r.date_modified.ctime(), r.image.width, r.image.height, r.id, r.thumb_url(), r.title, r.title) except: pass return HttpResponse( ret )
def uploadfile(request): path = request.POST.get('path', None) if not path or path.strip() == '': parent = BaseObject.resolveID(request.session.get('main_object', None)) if not parent: parent = Page.objects.get(parent__isnull=True) else: from core.views import get_object_by_url parent = get_object_by_url(path) if (len(request.FILES)): for file in request.FILES.items(): if -1 == file[1].name.rfind('.'): return HttpResponseForbidden() (name, ext) = file[1].name.rsplit('.', 2) if not ext in ALLOWED_IMAGES: return HttpResponseForbidden() from django import forms meta_form = forms.models.modelform_factory(Photo, fields = ('image',)) f = Photo(parent=parent, author = request.user.is_anonymous and parent.author or request.user) frm = meta_form({}, {'image':file[1]}, instance=f) if frm.is_valid(): frm.save() else: raise Exception("FRM IS NOT VALID") return HttpResponse( "Готово." ) else: return HttpResponse( "Нет файлов для загрузки." )
def showpath(request): path = request.POST.get('path', None) if not path: obj = BaseObject.resolveID(request.session.get('main_object', None)) if not obj: path = "/" else: path = obj.get_absolute_url() return HttpResponse(DirPath(request.POST['type'], path))
def showpath(request): path = request.POST.get('path', None) if not path: obj = BaseObject.resolveID(request.session.get('main_object', None)) if not obj: path = "/" else: path = obj.get_absolute_url() return HttpResponse(DirPath(request.POST['type'], path) )
def showtree(request): path = '' if request.POST.has_key('path'): path = request.POST['path'] obj = BaseObject.resolveID(request.session.get('main_object', None)) current_node = obj.walktree()[-1] p = Page.objects.get(parent__isnull=True) ret = "" for node in BaseObject.nodes(types=['Page'], parents=[current_node.parent]).all(): if node.id == current_node.id: ret += """<div class="folderOpened %s" path="%s" pathtype="%s">%s (%d)</div>"""%( 'folderAct', node.get_absolute_url(), "images", node.title[:30], len(node.get_images()) ) else: ret += """<div class="folder%s %s" path="%s" pathtype="%s">%s (%d)</div>"""%( "S", "", node.get_absolute_url(), "images", node.title[:30], len(node.get_images()) ) return HttpResponse( ret )
def showtree(request): path = '' if request.POST.has_key('path'): path = request.POST['path'] obj = BaseObject.resolveID(request.session.get('main_object', None)) current_node = obj.walktree()[-1] p = Page.objects.get(parent__isnull=True) ret = "" for node in BaseObject.nodes(types=['Page'], parents=[current_node.parent]).all(): if node.id == current_node.id: ret += """<div class="folderOpened %s" path="%s" pathtype="%s">%s (%d)</div>""" % ( 'folderAct', node.get_absolute_url(), "images", node.title[:30], len(node.get_images())) else: ret += """<div class="folder%s %s" path="%s" pathtype="%s">%s (%d)</div>""" % ( "S", "", node.get_absolute_url(), "images", node.title[:30], len(node.get_images())) return HttpResponse(ret)
def get_block(viewlet_dict, column, obj, req, fn, edit=False, new_type=None, data=None): """ Вычисляет содержимое колонки. column ::= {position} position ::= col, ":", num col ::= "a" | "b" | "c" num ::= {digit} Значение поля position (см. модель Viewlet): position_value ::= object | "$self" object ::= class, ":", id class ::= models.CLASS_DICT id ::= {digit} $self -- показывает сам объект, соответствующий текущему baseobject id. {a|b|c}:0 -- отключает показ соответствующей колонки. """ from core.models import BaseObject #raise Http404(u'asd') local_keys = filter( lambda x: x[0] == column and viewlet_dict[x] is not None, viewlet_dict.keys()) if len(local_keys) > 1: try: del (viewlet_dict["%s:0" % column]) local_keys = filter(lambda x: x[0] == column, viewlet_dict.keys()) except: pass out = u"" if len(local_keys) == 1 and local_keys[0] == "%s:0" % column: return None local_keys.sort() for key in local_keys: if viewlet_dict[key] == "$self": t = obj.direct_cast() else: (cls, oid) = viewlet_dict[key].split(":") from core import types # t = getattr(types, cls).objects.get(id=oid) t = BaseObject.resolveID(oid) # t = BaseObject.objects.get(id=oid).direct_cast() # t = eval("%s.objects.get(id=%s)"%(cls,oid)) # fn(t.__class__.__name__) # Где грязный хак, тут грязный хак?! req.main_object = obj req.session['main_object'] = obj.id if viewlet_dict[key] != "$self": out += t.render(req) # Создаем новый объект if new_type is not None: req.session['main_object'] = None print REGISTRUM['types'][new_type] t = (viewlet_dict[key] == "$self") and REGISTRUM['types'][new_type]['cls']( parent=t, type=new_type) try: out += (viewlet_dict[key] == "$self") and (data or t.render(req)) or '' except EPlainTextException, E: raise E except Http302, E: raise E
def get_block(viewlet_dict, column, obj, req, fn, edit=False, new_type=None, data=None): """ Вычисляет содержимое колонки. column ::= {position} position ::= col, ":", num col ::= "a" | "b" | "c" num ::= {digit} Значение поля position (см. модель Viewlet): position_value ::= object | "$self" object ::= class, ":", id class ::= models.CLASS_DICT id ::= {digit} $self -- показывает сам объект, соответствующий текущему baseobject id. {a|b|c}:0 -- отключает показ соответствующей колонки. """ from core.models import BaseObject #raise Http404(u'asd') local_keys = filter(lambda x: x[0] == column and viewlet_dict[x] is not None, viewlet_dict.keys()) if len(local_keys)>1: try: del(viewlet_dict["%s:0"%column]) local_keys = filter(lambda x: x[0] == column, viewlet_dict.keys()) except: pass out = u"" if len(local_keys) == 1 and local_keys[0] == "%s:0"%column: return None local_keys.sort() for key in local_keys: if viewlet_dict[key] == "$self": t = obj.direct_cast() else: (cls, oid) = viewlet_dict[key].split(":") from core import types # t = getattr(types, cls).objects.get(id=oid) t = BaseObject.resolveID(oid) # t = BaseObject.objects.get(id=oid).direct_cast() # t = eval("%s.objects.get(id=%s)"%(cls,oid)) # fn(t.__class__.__name__) # Где грязный хак, тут грязный хак?! req.main_object = obj req.session['main_object'] = obj.id if viewlet_dict[key] != "$self": out += t.render(req) # Создаем новый объект if new_type is not None : req.session['main_object'] = None print REGISTRUM['types'][new_type] t = (viewlet_dict[key] == "$self") and REGISTRUM['types'][new_type]['cls'](parent=t, type=new_type) try: out += (viewlet_dict[key] == "$self") and (data or t.render(req)) or '' except EPlainTextException, E: raise E except Http302, E: raise E