示例#1
0
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("Нет файлов для загрузки.")
示例#2
0
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)
示例#3
0
文件: views.py 项目: vden/TsoguNG
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( "Нет файлов для загрузки." )
示例#4
0
文件: views.py 项目: vden/TsoguNG
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 )
示例#5
0
def action(object, request):
    path_info = request.session['old_request']['path_info']
    obj = get_object_by_url("/%s/" % path_info)

    return {
        'title': obj.title,
        'pid': path_info == '/' and "1793" or "/%s/" % path_info
    }
示例#6
0
def page_include(page_url, parent_obj=None):
    if parent_obj:
        page_url = "%s%s"%(parent_obj.get_absolute_url(), page_url)
    try:
        obj = get_object_by_url(page_url)
    except:
        obj = None

    return {"obj": obj}
示例#7
0
文件: custom.py 项目: vden/TsoguNG
def plain_menu_navigation(object, request):
	object = request.main_object
	if object.config().has_key('menu_for_page'):
		from core.views import get_object_by_url
		object = get_object_by_url(object.config()['menu_for_page'])
	next_nodes = object.get_child_nodes_menu()
	if next_nodes:
		menu = next_nodes
	else:
		menu = object.parent and object.parent.get_child_nodes_menu() or []
	return {'menu':menu, 'obj':object, 'orig_obj':request.main_object}
示例#8
0
文件: active_dj.py 项目: vden/TsoguNG
def active_dj():
    root = get_object_by_url("/")
    cfg = root.config().get('active_dj_')
    avatar = ''
    name = ''
    if cfg:
        profile = User.objects.get(username=cfg)
        try:
            avatar = profile.get_profile().avatar.url()
        except:
            pass
        name = u"%s %s" % (profile.first_name, profile.last_name)
    return {'avatar': avatar, 'name': name}
示例#9
0
    def render(self, context):
        try:
            parent_obj = self.parent.resolve(context)
            if type(parent_obj)==SafeUnicode: 
                parent_obj = get_object_by_url(parent_obj)
            tag = self.tag.resolve(context)

            context[self.var] = parent_obj.get_child_nodes(for_user=True, states=[u'опубликованный',u'на главной'], \
                                                               tags=[tag,], sort_field="-date_published")
        except template.VariableDoesNotExist:
            pass

        return ''
示例#10
0
文件: active_dj.py 项目: vden/TsoguNG
def active_dj():
    root = get_object_by_url("/")
    cfg = root.config().get('active_dj_')
    avatar = ''
    name = ''
    if cfg:
        profile = User.objects.get(username=cfg)
        try:
            avatar = profile.get_profile().avatar.url()
        except:
            pass
        name = u"%s %s"%(profile.first_name, profile.last_name)
    return {'avatar': avatar, 'name': name}
示例#11
0
文件: workspace.py 项目: vden/TsoguNG
def get_available_types(request):
	from core.views import get_object_by_url
	from django.contrib.auth.models import Permission
	from django.contrib.contenttypes.models import ContentType
	available_types = []

	for type in REGISTRUM['workspace'].values():
		obj = get_object_by_url(type['default_place'])
		content_type = ContentType.objects.get_for_model(REGISTRUM['types'][type['type']]['cls'])
		permission = Permission.objects.get(codename='insert', content_type=content_type)

		if has_access(request.user, permission, obj):
			available_types.append(type)

	return available_types
示例#12
0
	def process_view(self, request, view_func, view_args, view_kwargs):
		"""
			Метод вызывается перед исполнением view.
		"""
		from core.views import get_object_by_url
		from core.models import Alias
		from django.http import HttpResponseRedirect
		if view_func.__name__ is 'dispatcher':
			path = [x for x in view_kwargs['path_info'].split("/") if x]
			if path:
				res = Alias.objects.filter(url=path[0])
				if res:
					view_kwargs['path_info'] = '%s%s' % (res[0].bid.get_absolute_url(),'/'.join(path[1:]))
					view_kwargs['redirect'] = True
			request.main_object = get_object_by_url(view_kwargs['path_info'])
			request.action = view_kwargs['action']
示例#13
0
    def process_view(self, request, view_func, view_args, view_kwargs):
        """
			Метод вызывается перед исполнением view.
		"""
        from core.views import get_object_by_url
        from core.models import Alias
        from django.http import HttpResponseRedirect
        if view_func.__name__ is 'dispatcher':
            path = [x for x in view_kwargs['path_info'].split("/") if x]
            if path:
                res = Alias.objects.filter(url=path[0])
                if res:
                    view_kwargs['path_info'] = '%s%s' % (
                        res[0].bid.get_absolute_url(), '/'.join(path[1:]))
                    view_kwargs['redirect'] = True
            request.main_object = get_object_by_url(view_kwargs['path_info'])
            request.action = view_kwargs['action']
示例#14
0
def get_available_types(request):
    from core.views import get_object_by_url
    from django.contrib.auth.models import Permission
    from django.contrib.contenttypes.models import ContentType
    available_types = []

    for type in REGISTRUM['workspace'].values():
        obj = get_object_by_url(type['default_place'])
        content_type = ContentType.objects.get_for_model(
            REGISTRUM['types'][type['type']]['cls'])
        permission = Permission.objects.get(codename='insert',
                                            content_type=content_type)

        if has_access(request.user, permission, obj):
            available_types.append(type)

    return available_types
示例#15
0
def action(object, request):
    try:
        title = unquote_plus(request.GET['title'])
        src = request.GET['src']
        url = request.GET['url']
        slug = request.GET['id']
    except:
        raise Http403

    if str(src) != "imib": raise Http403

    text=u'''Полный текст новости расположен по ссылке: <a href="%s" target="blank">%s</a>'''%(url,url)
    p = News(parent=get_object_by_url("/news/university/"), title=u"%s"%title, description=u' ', text=text, 
             author=User.objects.get(username="******"), slug=slug ) 
    p.category = Category.objects.get(name=u"Новости ИМиБ")
    p.save()

    return p.get_absolute_url()
示例#16
0
文件: nodes.py 项目: vden/TsoguNG
    def parents(self, *args):
        """
			Прозрачная функция - фильтр по предкам
			@return: NodeManager object
			@example: BaseObject.nodes().parents('/news/',953,'/inst/inig/').all()
		"""
        res = []
        for x in args:
            if type(x) == int:
                from core.models import BaseObject
                res.append(BaseObject.objects.get(id=x))
            elif type(x) in [str, unicode]:
                from core.views import get_object_by_url
                res.append(get_object_by_url(x))
            elif hasattr(x, 'id'):
                res.append(x)
        if self.is_cascade:
            res = self._get_childs_cascade(res, [])
        else:
            res = [x.id for x in res]
        self.query_set = self.query_set.filter(parent__in=res)
        return self
示例#17
0
文件: nodes.py 项目: vden/TsoguNG
	def parents(self, *args):
		"""
			Прозрачная функция - фильтр по предкам
			@return: NodeManager object
			@example: BaseObject.nodes().parents('/news/',953,'/inst/inig/').all()
		"""
		res = []
		for x in args:
			if type(x) == int:
				from core.models import BaseObject 
				res.append(BaseObject.objects.get(id=x))
			elif type(x) in [str,unicode]:
				from core.views import get_object_by_url
				res.append(get_object_by_url(x))
			elif hasattr(x, 'id'):
				res.append(x)
		if self.is_cascade:
			res = self._get_childs_cascade(res, [])
		else:
			res = [x.id for x in res]
		self.query_set = self.query_set.filter(parent__in=res)
		return self 
示例#18
0
def action(object, request):
    try:
        title = unquote_plus(request.GET['title'])
        src = request.GET['src']
        url = request.GET['url']
        slug = request.GET['id']
    except:
        raise Http403

    if str(src) != "imib": raise Http403

    text = u'''Полный текст новости расположен по ссылке: <a href="%s" target="blank">%s</a>''' % (
        url, url)
    p = News(parent=get_object_by_url("/news/university/"),
             title=u"%s" % title,
             description=u' ',
             text=text,
             author=User.objects.get(username="******"),
             slug=slug)
    p.category = Category.objects.get(name=u"Новости ИМиБ")
    p.save()

    return p.get_absolute_url()
示例#19
0
def action(object, request):
    path_info = request.session['old_request']['path_info']
    obj = get_object_by_url ( "/%s/"%path_info )
    
    return { 'title': obj.title, 'pid': path_info == '/' and "1793" or "/%s/"%path_info }
示例#20
0
 def get_object(self, bits):
     return get_object_by_url("/".join(bits))