Ejemplo n.º 1
0
 def testGetDocumentOr404(self):
     Doc(name=DOC_NAME, text=SAMPLE_TEXT).save()
     self.assertTrue(
         get_document_or_404(Doc, name=DOC_NAME).name == DOC_NAME)
     with self.assertRaisesMessage(Http404,
                                   'No Document matches the given query.'):
         get_document_or_404(Doc, name='not_exisitng')
Ejemplo n.º 2
0
def delete_message(request, group, message_id):
    get_document_or_404(GroupMessage, id=message_id).delete()
    if request.is_ajax():
        objects = paginate(request,
                           GroupMessage.objects(group=group),
                           GroupMessage.objects(group=group).count(),
                           settings.MESSAGES_ON_PAGE)
        return direct_to_template(request, 'groups/_comments.html', dict(
            group=group,
            is_admin=group.is_admin(request.user) or request.user.is_superuser,
            objects=objects,
        ))
    else:
        return redirect(reverse('groups:group_view', args=[group.id]))
Ejemplo n.º 3
0
    def get_object(self):
        """
        *** Inherited from DRF 3 GenericAPIView, swapped get_object_or_404() with get_document_or_404() ***

        Returns the object the view is displaying.

        You may want to override this if you need to provide non-standard
        queryset lookups.  Eg if objects are referenced using multiple
        keyword arguments in the url conf.
        """
        queryset = self.filter_queryset(self.get_queryset())

        # Perform the lookup filtering.
        lookup_url_kwarg = self.lookup_url_kwarg or self.lookup_field

        assert lookup_url_kwarg in self.kwargs, (
            'Expected view %s to be called with a URL keyword argument '
            'named "%s". Fix your URL conf, or set the `.lookup_field` '
            'attribute on the view correctly.' %
            (self.__class__.__name__, lookup_url_kwarg)
        )

        filter_kwargs = {self.lookup_field: self.kwargs[lookup_url_kwarg]}
        obj = get_document_or_404(queryset, **filter_kwargs)

        # May raise a permission denied
        self.check_object_permissions(self.request, obj)

        return obj
Ejemplo n.º 4
0
def group_view(request, id):
    group = get_document_or_404(Group, id=id)
    is_active = group.is_active(request.user)

    is_ajax = request.is_ajax()

    if request.POST:
        if not is_active:
            if is_ajax:
                return HttpResponse('')
            else:
                messages.add_message(request, messages.ERROR,
                                 _('To send a message, you need to join the group.'))
                return redirect(reverse('groups:group_view', args=[id]))
        form = MessageTextForm(request.POST)
        if form.is_valid():
            message = GroupMessage(
                group=group,
                sender=request.user,
                text=form.cleaned_data['text'],
            )
            message.save()
            if not is_ajax:
                return redirect(reverse('groups:group_view', args=[id]))
        elif is_ajax:
            return HttpResponse('')
    elif not is_ajax:
        form = MessageTextForm()

    objects = paginate(request,
                       GroupMessage.objects(group=group),
                       GroupMessage.objects(group=group).count(),
                       settings.MESSAGES_ON_PAGE)

    if is_ajax:
        return direct_to_template(request, 'groups/_comments.html', dict(
            group=group,
            is_admin=group.is_admin(request.user) or request.user.is_superuser,
            objects=objects,
        ))
    else:
        admins = []
        members = []
        for info in GroupUser.objects(group=group, status=GroupUser.STATUS.ACTIVE):
            if info.is_admin:
                admins.append(info.user)
            else:
                members.append(info.user)
        return direct_to_template(request, 'groups/view.html', dict(
            group=group,
            admins=admins,
            members=members,
            is_admin=group.is_admin(request.user) or request.user.is_superuser,
            can_view_private=group.public or is_active or request.user.is_superuser,
            can_view_conference=is_active or request.user.is_superuser,
            can_send_message=is_active,
            is_status_request=group.is_request(request.user),
            objects=objects,
            form=form,
        ))
Ejemplo n.º 5
0
def render_dashboard(request, title):
    if (not request.user.is_authenticated()):
        return login_user(request)

    dash = Dashboard.objects.filter(title=title)
    if len(dash) == 0:
        return redirect(settings.BASE_URL + "/list/")

    dashPerms = Dashboard_Permission.objects.filter(dashboard_title=title,
                                                    user=request.user.username)
    if len(dashPerms) == 0:
        return redirect(settings.BASE_URL + "/list/")

    template = loader.get_template('dashboard.html')
    dashboard = get_document_or_404(Dashboard, pk=title)
    topic_names = TopicWindowFunctions.get_topic_windows(dashboard.title)
    user_permissions_list = Dashboard_Permission.objects.filter(
        dashboard_title=dashboard.title)
    list_of_usernames = []
    for user_obj in user_permissions_list:
        list_of_usernames.append(user_obj.user)
    matched_usernames = check_for_active_users(list_of_usernames)
    print("connected users: " + str(matched_usernames))
    context = RequestContext(
        request, {
            'dashboard': dashboard,
            'topic_names': topic_names,
            'connected_users': matched_usernames,
        })
    return HttpResponse(template.render(context))
Ejemplo n.º 6
0
def send_invite(request, group, user_id):
    user = get_document_or_404(User, id=user_id)
    group.add_member(user, status=GroupUser.STATUS.INVITE)
    if request.is_ajax():
        return HttpResponse('OK')
    else:
        return redirect(reverse('groups:send_friends_invite', args=[group.id]))
Ejemplo n.º 7
0
def group_edit(request, id=None):
    if id:
        group = get_document_or_404(Group, id=id)
        is_admin = group.is_admin(request.user) or request.user.is_superuser
        if not is_admin:
            messages.add_message(request, messages.ERROR,
                                 _('You are not allowed.'))
            return redirect(reverse('groups:group_view', args=[id]))
        initial = group._data
    else:
        initial = Group()._data

    form = GroupCreationForm(request.POST or None, initial=initial)

    if form.is_valid():
        if not id:
            group = Group()

        for k, v in form.cleaned_data.items():
            if v or getattr(group, k):
                setattr(group, k, v)

        group.save()
        if not id:
            group.add_member(request.user, is_admin=True)
        return redirect(reverse('groups:group_view', args=[group.id]))
    return direct_to_template(
        request, 'groups/group_edit.html',
        dict(form=form,
             is_new=id is None,
             is_public=group.public if id else True,
             group=id and group))
Ejemplo n.º 8
0
def send_invite(request, group, user_id):
    user = get_document_or_404(User, id=user_id)
    group.add_member(user, status=GroupUser.STATUS.INVITE)
    if request.is_ajax():
        return HttpResponse('OK')
    else:
        return redirect(reverse('groups:send_friends_invite', args=[group.id]))
    def get_object(self):
        """
        *** Inherited from DRF 3 GenericAPIView, swapped get_object_or_404() with get_document_or_404() ***

        Returns the object the view is displaying.

        You may want to override this if you need to provide non-standard
        queryset lookups.  Eg if objects are referenced using multiple
        keyword arguments in the url conf.
        """
        queryset = self.filter_queryset(self.get_queryset())

        # Perform the lookup filtering.
        lookup_url_kwarg = self.lookup_url_kwarg or self.lookup_field

        assert lookup_url_kwarg in self.kwargs, (
            'Expected view %s to be called with a URL keyword argument '
            'named "%s". Fix your URL conf, or set the `.lookup_field` '
            'attribute on the view correctly.' %
            (self.__class__.__name__, lookup_url_kwarg))

        filter_kwargs = {self.lookup_field: self.kwargs[lookup_url_kwarg]}
        obj = get_document_or_404(queryset, **filter_kwargs)

        # May raise a permission denied
        self.check_object_permissions(self.request, obj)

        return obj
Ejemplo n.º 10
0
def folder_add(request, library, id=None):
    tree = get_library(library)

    if id:
        folder = get_document_or_404(Folder, id=id)
        parent = tree.get(folder.id)
        if not parent:
            raise Http404()
        current_folder = parent
    else:
        current_folder = None

    if request.POST:
        form = FolderEditForm(request.POST)

        if form.is_valid():
            folder = Folder(name=form.cleaned_data['name'])
            folder.save()

            if id:
                tree.add(folder, parent)
            else:
                tree.add(folder)
            tree.save()
            messages.add_message(request, messages.SUCCESS, _('Folder successfully added'))
            return redirect_by_id('media_library:%s_index' % library, id)
    else:
        form = FolderEditForm()
    return direct_to_template(request,
                              'media_library/folder_edit.html',
                              dict( breadcrumb='media_library/_%s_breadcrumb.html' % library,
                                    form=form,
                                    current_folder=current_folder ) )
Ejemplo n.º 11
0
def get_access_to_camera(request, id, is_controlled):
    camera = get_document_or_404(Camera, id=id)
    if request.POST:
        form = AccessCamOrderForm(camera, is_controlled, request.user, request.POST)
        if form.is_valid():
            tariff = form.cleaned_data['tariff']
            try:
                if tariff.is_packet:
                    AccessCamOrder.create_packet_type(
                        tariff=tariff,
                        count_packets=form.cleaned_data['count_packets'],
                        user=request.user,
                        camera=camera,
                    )
                else:
                    AccessCamOrder.create_time_type(
                        tariff=tariff,
                        user=request.user,
                        camera=camera,
                    )
            except AccessCamOrder.CanNotAddOrder:
                pass
            return HttpResponseRedirect(reverse('social:user', args=[camera.owner.id]))
    else:
        form = AccessCamOrderForm(camera, is_controlled)
    return direct_to_template(request, 'billing/get_access_to_camera.html', { 'form': form, 'camera': camera })
Ejemplo n.º 12
0
    def change_view(self, request, collection, object_id=None):
        cls, admin = self.verify_collection(collection)
        if object_id:
            document = get_document_or_404(cls, id=object_id)
            form = admin.get_form(request.POST or None, instance=document)
            add, change = False, True
        else:
            document = None
            form = admin.get_form(request.POST or None)
            add, change = True, False

        if form.is_valid():
            document = form.save()
            msg = _('The %(name)s "%(obj)s" was saved successfully.') % {'name': force_unicode(admin.verbose_name), 'obj': force_unicode(document)}
            if '_continue' in request.POST:
                redirect_url = reverse('mongoadmin:change', args=(collection, str(document.pk)))
                msg += ' ' + _('You may edit it again below.')
            elif '_addanother' in request.POST:
                redirect_url = reverse('mongoadmin:add', args=(collection,))
                msg += ' ' + (_('You may add another %s below.') % force_unicode(admin.verbose_name))
            else:
                redirect_url = reverse('mongoadmin:changelist', args=(collection,))

            messages.info(request, msg)
            return HttpResponseRedirect(redirect_url)

        return render_to_response('mongoadmin/change_form.html', {
            'document': document,
            'form': form,
            'collection': collection,
            'admin': admin,
            'add': add,
            'change': change,
            'title': _('Change %s') % admin.verbose_name
            }, context_instance=RequestContext(request))
Ejemplo n.º 13
0
def view(request, id):
    item = get_document_or_404(Ad, id=id)
    return direct_to_template(request, 'ads/view.html',
                                dict(
                                      item=item,
                                      )
                              )
Ejemplo n.º 14
0
def show_config(request, config_id):
    config = get_document_or_404(Config, id=config_id)
    return render_to_response('config/config.html', 
        {
            'config':config,
            'page_title': 'View Configuration: %s' % config.title,
        }, context_instance=RequestContext(request))
Ejemplo n.º 15
0
def delete_message(request, group, message_id):
    get_document_or_404(GroupMessage, id=message_id).delete()
    if request.is_ajax():
        objects = paginate(request, GroupMessage.objects(group=group),
                           GroupMessage.objects(group=group).count(),
                           settings.MESSAGES_ON_PAGE)
        return direct_to_template(
            request, 'groups/_comments.html',
            dict(
                group=group,
                is_admin=group.is_admin(request.user)
                or request.user.is_superuser,
                objects=objects,
            ))
    else:
        return redirect(reverse('groups:group_view', args=[group.id]))
Ejemplo n.º 16
0
def category_posts(request, category_anchor):
    """
    The below anchor of Category can contain: #anchor or page (domain/page).

    NOTE(DATABASE): We don't interested to use Index to anchor field
    because Category collection is very small the performance result is no
    significant
    """
    is_container = False
    anchor_exists = get_document_or_404(models.Category,
                                        anchor__contains=category_anchor.lower())

    today = datetime.datetime.now()
    # TODO index sort (order_by)
    posts = models.Post.objects(categories=anchor_exists, published=True,
                                created_at__lte=today).order_by('-created_at')

    try:
        is_container = anchor_exists.is_container
    except AttributeError:
           pass

    if is_container:
        posts = posts.first()
        return post_view(request, posts.slug)

    return render_to_response('posts_by_category.html',
                              {'posts': posts, 'category': anchor_exists})
Ejemplo n.º 17
0
    def wrapper():
        if id:
            user = get_document_or_404(User, id=id)
            if not request.user.is_superuser and user.id != request.user.id:
                return HttpResponseNotFound()
        else:
            user = request.user

        context = profile_form(request, user)
        if not context:
            return

        answer = user_form(request, user)
        if not answer:
            return
        context.update(answer)

        dating = dating_form(request, user)
        if not dating:
            return
        context.update(dating)

        camera = user.get_camera()
        if camera or request.user.is_superuser:
            answer = cam_form(request, user, camera)
            if not answer:
                return
            context.update(answer)
            if answer["camera"]:
                answer = screen_form(request, user.get_camera())
                if not answer:
                    return
                context.update(answer)
        context.update({"user": user})
        return context
Ejemplo n.º 18
0
def get_access_to_camera(request, id, is_controlled):
    camera = get_document_or_404(Camera, id=id)
    if request.POST:
        form = AccessCamOrderForm(camera, is_controlled, request.user,
                                  request.POST)
        if form.is_valid():
            tariff = form.cleaned_data['tariff']
            try:
                if tariff.is_packet:
                    AccessCamOrder.create_packet_type(
                        tariff=tariff,
                        count_packets=form.cleaned_data['count_packets'],
                        user=request.user,
                        camera=camera,
                    )
                else:
                    AccessCamOrder.create_time_type(
                        tariff=tariff,
                        user=request.user,
                        camera=camera,
                    )
            except AccessCamOrder.CanNotAddOrder:
                pass
            return HttpResponseRedirect(
                reverse('social:user', args=[camera.owner.id]))
    else:
        form = AccessCamOrderForm(camera, is_controlled)
    return direct_to_template(request, 'billing/get_access_to_camera.html', {
        'form': form,
        'camera': camera
    })
Ejemplo n.º 19
0
    def get_category(self):
        category_slug = self.kwargs.get('category_slug')

        if category_slug:
            return get_document_or_404(
                Category,
                slug=category_slug)
Ejemplo n.º 20
0
def image_delete(request, id):
    library = get_library(LIBRARY_TYPE_IMAGE)
    image = get_document_or_404(File, id=id)
    library.remove_file(image)
    messages.add_message(request, messages.SUCCESS,
                         _('Image successfully removed'))
    return redirect('media_library:image_index')
Ejemplo n.º 21
0
def video_delete(request, id):
    library = get_library(LIBRARY_TYPE_VIDEO)
    video = get_document_or_404(File, id=id)
    library.remove_file(video)
    messages.add_message(request, messages.SUCCESS,
                         _('Video successfully removed'))
    return redirect('media_library:video_index')
Ejemplo n.º 22
0
def edit(request, id=None):
    if id:
        item = get_document_or_404(AdminBlog, id=id)
        initial = item._data
    else:
        item = None
        initial = {}

    form = AdminBlogForm(request.POST or None, initial=initial)

    if form.is_valid():
        if not item:
            item = AdminBlog()

        for k, v in form.cleaned_data.items():
            if k.startswith("_"):
                continue
            if hasattr(item, k):
                setattr(item, k, v)

        item.author = request.user
        item.save()

        return redirect("admin_blog:list")

    return direct_to_template(request, "admin_blog/edit.html", dict(form=form, is_new=id is None))
Ejemplo n.º 23
0
def tag_edit(request, id=None):
    if id:
        tag = get_document_or_404(CameraTag, id=id)
        initial = tag._data
    else:
        tag = None
        initial = {}

    form = CameraTagForm(request.POST or None, initial=initial)

    if form.is_valid():
        if not tag:
            tag = CameraTag()

        for k, v in form.cleaned_data.items():
            if k.startswith('_'):
                continue
            if hasattr(tag, k):
                setattr(tag, k, v)
        tag.save()
        return HttpResponseRedirect(reverse('cam:tag_list'))

    return direct_to_template(request, 'cam/tag_edit.html',
                              dict(form=form, is_new=id is None)
                              )
Ejemplo n.º 24
0
def password_reset_done(request):
    """ Make new password to user by email
    """
    if request.method == "POST":
        form = forms.PasswordConfirm(request.POST, )
        if form.is_valid():
            new_password = form.cleaned_data["new_password2"]
            email = request.session.get('email', False)
            user = get_document_or_404(models.User, email=email)
            user.set_password(new_password)
            user.save()

            auth_user = authenticate(username=user.username, password=new_password)
            if auth_user is not None:
                if auth_user.is_active:
                    login(request, auth_user)
                    return redirect(reverse("dashboard"))
                else:
                    pass # account disabled
            else:
                return HttpResponse('Invalid login (username or password)')

    else:
        form = forms.PasswordConfirm()

    return render(request, "password_reset_form.html", dict(form=form))
Ejemplo n.º 25
0
def user(request, user_id=None):
    page_user = get_document_or_404(User, id=user_id)
    if page_user == request.user:
        return redirect("social:home")

    invitee_count = Invite.invitee_count(page_user)
    is_friend = not request.user.friends.can_add(page_user)
    camera = page_user.get_camera()

    data = {
        "camera": camera,
        "invitee_count": invitee_count,
        "page_user": page_user,
        "profile": page_user.profile.for_html(),
        "settings": settings,
        "show_friend_button": not is_friend,
    }

    if camera:
        data.update(
            {
                "billing": camera.billing(request.user, request.session),
                "show_bookmark_button": camera.can_bookmark_add(request.user),
                "show_view_access_link": camera.is_view_enabled
                and camera.is_view_paid
                and camera.is_view_public
                or is_friend,
                "show_manage_access_link": camera.is_management_enabled
                and camera.is_managed
                and camera.is_management_paid
                and (camera.is_management_public or is_friend),
            }
        )
    return direct_to_template(request, "social/home.html", data)
Ejemplo n.º 26
0
    def get(self, request, *args, **kwargs):
        spot_slug = kwargs['spot_slug']
        s = get_document_or_404(Spot, slug=spot_slug)
        # take care of service-specific information
        # in the future I think it should be taken care of
        # in the form, not in the view. maybe override constructor
        for service in s._data['services']:
            if service.__class__ is ServiceFood:
                s._data['service_food'] = True
                s._data['food_category'] = service.category
                s._data['food_delivery'] = service.delivery
                s._data['food_take_out'] = service.take_out
            elif service.__class__ is ServiceBar:
                s._data['service_bar'] = True
                s._data['bar_category'] = service.category
            elif service.__class__ is ServiceCoffee:
                s._data['service_coffee'] = True
                s._data['coffee_board_games'] = service.board_games
            elif service.__class__ is ServiceClub:
                s._data['service_club'] = True
                s._data['club_coat_check'] = service.coat_check
                s._data['club_face_control'] = service.face_control

        if s._data.get('location'):
            s._data['longtitude'] = s._data['location'][0]
            s._data['latitude'] = s._data['location'][1]

        form = SpotForm(initial=s._data)

        return render(request, self.template_name, {
                                            'form': form,
                                            'spot_slug': spot_slug
                                            })
Ejemplo n.º 27
0
def user_picture(request, username):
    path = get_document_or_404(User, username = username).picture
    if not path:
        path = '{0}img/user-avatar.jpg'.format(STATIC_URL)
    url = 'http://{0}{1}'.format(request.META['HTTP_HOST'], path)
    #return HttpResponse(urlopen(url).read(), mimetype="image/jpg")
    return HttpResponseRedirect(url)
Ejemplo n.º 28
0
    def post(self, request, *args, **kwargs):
        spot = get_document_or_404(Spot, slug=kwargs['spot_slug'])
        
        if request.POST.get('action') == 'like' and not request.user.likes_spot(spot):
            if request.user.dislikes_spot(spot):
                Dislike.objects(user=request.user, spot=spot).first().delete()
                request.user.remove_dislike(spot)
            request.user.likes.append(spot)
            request.user.save()
            Like(user=request.user, spot=spot).save()
            return self.render_json_response({'action': 'like'})
        elif request.POST.get('action') == 'dislike' and not request.user.dislikes_spot(spot):
            if request.user.likes_spot(spot):
                Like.objects(user=request.user, spot=spot).first().delete()
                request.user.remove_like(spot)
            request.user.dislikes.append(spot)
            request.user.save()
            Dislike(user=request.user, spot=spot).save()
            return self.render_json_response({'action': 'dislike'})
        elif request.POST.get('action') == 'neutral':
            if request.user.likes_spot(spot):
                Like.objects(user=request.user, spot=spot).first().delete()
                request.user.remove_like(spot)   
            else:
                Dislike.objects(user=request.user, spot=spot).first().delete()
                request.user.remove_dislike(spot)

            request.user.save()
            return self.render_json_response({'action': 'neutral'})

        raise Http404
Ejemplo n.º 29
0
    def wrapper():
        if id:
            user = get_document_or_404(User, id=id)
            if not request.user.is_superuser and user.id != request.user.id:
                return HttpResponseNotFound()
        else:
            user = request.user

        context = profile_form(request, user)
        if not context:
            return

        if request.user.is_superuser:
            answer = user_form(request, user)
            if not answer:
                return
            context.update(answer)

        camera = user.get_camera()
        if camera or request.user.is_superuser:
            answer = cam_form(request, user, camera)
            if not answer:
                return
            context.update(answer)
            if answer['camera']:
                answer = screen_form(request, user.get_camera())
                if not answer:
                    return
                context.update(answer)
        context.update({'user': user})
        return context
Ejemplo n.º 30
0
def captcha_image(request, key):
    store = get_document_or_404(CaptchaStore, hashkey=key)
    text = store.challenge

    if settings.CAPTCHA_FONT_PATH.lower().strip().endswith('ttf'):
        font = ImageFont.truetype(settings.CAPTCHA_FONT_PATH, settings.CAPTCHA_FONT_SIZE)
    else:
        font = ImageFont.load(settings.CAPTCHA_FONT_PATH)

    size = font.getsize(text)
    size = (size[0] * 2, int(size[1] * 1.2))
    image = Image.new('RGB', size, settings.CAPTCHA_BACKGROUND_COLOR)

    try:
        PIL_VERSION = int(NON_DIGITS_RX.sub('', Image.VERSION))
    except:
        PIL_VERSION = 116
    xpos = 2

    charlist = []
    for char in text:
        if char in settings.CAPTCHA_PUNCTUATION and len(charlist) >= 1:
            charlist[-1] += char
        else:
            charlist.append(char)
    for char in charlist:
        fgimage = Image.new('RGB', size, settings.CAPTCHA_FOREGROUND_COLOR)
        charimage = Image.new('L', font.getsize(' %s ' % char), '#000000')
        chardraw = ImageDraw.Draw(charimage)
        chardraw.text((0, 0), ' %s ' % char, font=font, fill='#ffffff')
        if settings.CAPTCHA_LETTER_ROTATION:
            if PIL_VERSION >= 116:
                charimage = charimage.rotate(random.randrange(*settings.CAPTCHA_LETTER_ROTATION), expand=0, resample=Image.BICUBIC)
            else:
                charimage = charimage.rotate(random.randrange(*settings.CAPTCHA_LETTER_ROTATION), resample=Image.BICUBIC)
        charimage = charimage.crop(charimage.getbbox())
        maskimage = Image.new('L', size)

        maskimage.paste(charimage, (xpos, 4, xpos + charimage.size[0], 4 + charimage.size[1]))
        size = maskimage.size
        image = Image.composite(fgimage, image, maskimage)
        xpos = xpos + 2 + charimage.size[0]

    image = image.crop((0, 0, xpos + 1, size[1]))
    draw = ImageDraw.Draw(image)

    for f in settings.noise_functions():
        draw = f(draw, image)
    for f in settings.filter_functions():
        image = f(image)

    out = StringIO()
    image.save(out, "PNG")
    out.seek(0)

    response = HttpResponse(content_type='image/png')
    response.write(out.read())
    response['Content-length'] = out.tell()

    return response
Ejemplo n.º 31
0
def ombudsman_picture(request, slug):
    path = get_document_or_404(OmbudsmanOffice, slug = slug).picture
    if not path:
        path = '{0}img/ombudsman-avatar.jpg'.format(STATIC_URL)
    url = 'http://{0}{1}'.format(request.META['HTTP_HOST'], path)
    #return HttpResponse(urlopen(url).read(), mimetype="image/jpg")
    return HttpResponseRedirect(url)
Ejemplo n.º 32
0
def note_edit(request, note_id=None):
    fields = ('title', 'text', 'is_public')

    if note_id:
        note = get_document_or_404(Note, id=note_id, author=request.user)

        initial = {}

        for field in fields:
            initial[field] = getattr(note, field)

    else:
        note = None
        initial = {}

    form = NoteForm(request.POST or None, initial=initial)

    if form.is_valid():
        note = note or Note(author=request.user)

        for field in fields:
            setattr(note, field, form.cleaned_data[field])

        note.save()
        return HttpResponseRedirect(reverse('notes:note_list'))

    return direct_to_template(request, 'notes/note_edit.html',
                              { 'form': form, 'create': not note })
Ejemplo n.º 33
0
    def change_view(self, request, collection, object_id=None):
        cls, admin = self.verify_collection(collection)
        if object_id:
            document = get_document_or_404(cls, id=object_id)
            form = admin.get_form(request.POST or None, instance=document)
            add, change = False, True
        else:
            document = None
            form = admin.get_form(request.POST or None)
            add, change = True, False

        if form.is_valid():
            document = form.save()
            msg = _('The %(name)s "%(obj)s" was saved successfully.') % {'name': force_unicode(admin.verbose_name), 'obj': force_unicode(document)}
            if '_continue' in request.POST:
                redirect_url = reverse('mongoadmin:change', args=(collection, str(document.pk)))
                msg += ' ' + _('You may edit it again below.')
            elif '_addanother' in request.POST:
                redirect_url = reverse('mongoadmin:add', args=(collection,))
                msg += ' ' + (_('You may add another %s below.') % force_unicode(admin.verbose_name))
            else:
                redirect_url = reverse('mongoadmin:changelist', args=(collection,))

            messages.info(request, msg)
            return HttpResponseRedirect(redirect_url)

        return render_to_response('mongoadmin/change_form.html', {
            'document': document,
            'form': form,
            'collection': collection,
            'admin': admin,
            'add': add,
            'change': change,
            'title': _('Change %s') % admin.verbose_name
            }, context_instance=RequestContext(request))
Ejemplo n.º 34
0
 def get_forum(self, *args, **kwargs):
     id = self.kwargs.get('id')
     object = get_document_or_404(
         Forum,
         id=int(id),
     )
     return object
Ejemplo n.º 35
0
def render_dashboard(request, title):
    if (not request.user.is_authenticated()):
        return login_user(request)
    
    dash = Dashboard.objects.filter(title=title)
    if len(dash) == 0:
        return redirect(settings.BASE_URL + "/list/")
    
    dashPerms = Dashboard_Permission.objects.filter(dashboard_title=title, user=request.user.username)
    if len(dashPerms)==0:
        return redirect(settings.BASE_URL + "/list/")

    template = loader.get_template('dashboard.html')
    dashboard = get_document_or_404(Dashboard, pk=title)
    topic_names = TopicWindowFunctions.get_topic_windows(dashboard.title)
    user_permissions_list = Dashboard_Permission.objects.filter(dashboard_title=dashboard.title)
    list_of_usernames = []
    for user_obj in user_permissions_list:
        list_of_usernames.append(user_obj.user)
    matched_usernames = check_for_active_users(list_of_usernames)
    print("connected users: " + str(matched_usernames))
    context = RequestContext(request, {
        'dashboard': dashboard,
        'topic_names': topic_names,
        'connected_users': matched_usernames,
    })
    return HttpResponse(template.render(context))
Ejemplo n.º 36
0
def show_device(request, device_id=None):
    device = get_document_or_404(Device, device_id=device_id)
    return render_to_response('device/device.html', 
        {
            'device':device,
            'page_title': 'View Device: %s' % device.device_id,
        }, context_instance=RequestContext(request))
Ejemplo n.º 37
0
def folder_edit(request, library, id):
    tree = get_library(library)

    folder = get_document_or_404(Folder, id=id)
    current_folder = tree.get(folder.id)
    if not current_folder:
        raise Http404()

    if request.POST:
        form = FolderEditForm(request.POST, initial=folder._data)

        if form.is_valid():
            tree.rename(folder, form.cleaned_data['name'])
            current_folder.name = folder.name
            tree.save()
            messages.add_message(request, messages.SUCCESS, _('Folder successfully saved'))
            return redirect_by_id('media_library:%s_index' % library, id)
    else:
        form = FolderEditForm(initial=folder._data)
    return direct_to_template(request,
                              'media_library/folder_edit.html',
                              dict( breadcrumb='media_library/_%s_breadcrumb.html' % library,
                                    form=form,
                                    current_folder=current_folder,
                                    is_edit=True ) )
Ejemplo n.º 38
0
def view_message_by_user(request, user_id, action=''):
    by_user = get_document_or_404(User, id=user_id)
    owner  = request.user
    template = 'by_user.html'
    
    if action == 'sent':
        messages = Message.objects(sender=owner,
                               recipient=by_user,
                               sender_delete=None)
        template = 'by_user_sent.html'

    elif action == 'inbox':
        messages = Message.objects(recipient=request.user,
                               sender=by_user,
                               recipient_delete=None)
        template = 'by_user_inbox.html'

    else:
        messages = Message.objects(
                            Q(sender=owner, recipient=by_user, sender_delete=None) |
                            Q(sender=by_user, recipient=owner, recipient_delete=None),
                               )
    objects = paginate(request,
                       messages,
                       messages.count(),
                       10)
    return direct_to_template(request, 'user_messages/%s' % template,
                              { 'objects': objects,
                                'by_user': by_user,
                                'action': action,
                                })
Ejemplo n.º 39
0
def type_edit(request, id=None):
    if id:
        type = get_document_or_404(CameraType, id=id)
        initial = type._data
    else:
        type = None
        initial = {}

    form = CameraTypeForm(request.POST or None, initial=initial)

    if form.is_valid():
        if not type:
            type = CameraType()

        for k, v in form.cleaned_data.items():
            if k.startswith('_'):
                continue
            if hasattr(type, k):
                setattr(type, k, v)
        type.save()
        #return HttpResponseRedirect(reverse('cam:type_edit', kwargs=dict(id=type.id)))
        return HttpResponseRedirect(reverse('cam:type_list'))

    return direct_to_template(request, 'cam/type_edit.html',
                              dict(form=form, is_new=id is None)
                              )
Ejemplo n.º 40
0
def group_edit(request, id=None):
    if id:
        group = get_document_or_404(Group, id=id)
        is_admin = group.is_admin(request.user) or request.user.is_superuser
        if not is_admin:
            messages.add_message(request, messages.ERROR, _('You are not allowed.'))
            return redirect(reverse('groups:group_view', args=[id]))
        initial = group._data
    else:
        initial = Group()._data

    form = GroupCreationForm(request.POST or None, initial=initial)

    if form.is_valid():
        if not id:
            group = Group()

        for k, v in form.cleaned_data.items():
            if v or getattr(group, k):
                setattr(group, k, v)

        group.save()
        if not id:
            group.add_member(request.user, is_admin=True)
        return redirect(reverse('groups:group_view', args=[group.id]))
    return direct_to_template(request, 'groups/group_edit.html', dict(form=form,
                                                                      is_new=id is None,
                                                                      is_public=group.public if id else True,
                                                                      group=id and group))
Ejemplo n.º 41
0
def edit(request, id=None):
    if id:
        item = get_document_or_404(AdminBlog, id=id)
        initial = item._data
    else:
        item = None
        initial = {}

    form = AdminBlogForm(request.POST or None, initial=initial)

    if form.is_valid():
        if not item:
            item = AdminBlog()

        for k, v in form.cleaned_data.items():
            if k.startswith('_'):
                continue
            if hasattr(item, k):
                setattr(item, k, v)

        item.author = request.user
        item.save()

        return redirect('admin_blog:list')

    return direct_to_template(request, 'admin_blog/edit.html',
                              dict(
                                    form=form,
                                    is_new=id is None
                                    )
                              )
Ejemplo n.º 42
0
def user(request, user_id=None):
    page_user = get_document_or_404(User, id=user_id)
    if page_user == request.user:
        return redirect('social:home')

    invitee_count = Invite.invitee_count(page_user)
    is_friend = not request.user.friends.can_add(page_user)
    camera = page_user.get_camera()

    data = {
        'camera': camera,
        'invitee_count': invitee_count,
        'page_user': page_user,
        'profile': page_user.profile.for_html(),
        'settings': settings,
        'show_friend_button': not is_friend,
    }

    if camera:
        data.update({
            'billing':
            camera.billing(request.user, request.session),
            'show_bookmark_button':
            camera.can_bookmark_add(request.user),
            'show_view_access_link':
            camera.is_view_enabled and camera.is_view_paid
            and camera.is_view_public or is_friend,
            'show_manage_access_link':
            camera.is_management_enabled and camera.is_managed
            and camera.is_management_paid
            and (camera.is_management_public or is_friend),
        })
    return direct_to_template(request, 'social/home.html', data)
Ejemplo n.º 43
0
def create_group(request, domainid):
    class TeacherGroupCreationForm(DocumentForm):
        class Meta:
            document = Group
            fields = ['code', 'abbr', 'title', 'description']

    domain = get_document_or_404(Domain,
        owner=request.user.pkstr,
        pk=domainid)
    if request.method == "POST":
        form = TeacherGroupCreationForm(request.POST)
        if form.is_valid():
            group = form.save(commit=False)
            group.domain = 'tea'
            group.source = 'man'
            group.owner = request.user.pkstr
            group.save()
            groupstudents = GroupStudents(gp=group, owner=request.user.pkstr,
                                          datestart=domain.datestart, 
                                          dateend=domain.dateend)
            groupstudents.save()
            domain.groups.append(groupstudents)
            domain.save()
            return HttpResponseRedirect(
                reverse(edit_group, kwargs={'domainid': domainid,
                                            'groupid': groupstudents.pkstr}))
    else:
        form = TeacherGroupCreationForm()
    return render(request, "group/teacher/create_group.html",
                  {'form': form, 'domain': domain})
Ejemplo n.º 44
0
def note_edit(request, note_id=None):
    fields = ('title', 'text', 'is_public')

    if note_id:
        note = get_document_or_404(Note, id=note_id, author=request.user)

        initial = {}

        for field in fields:
            initial[field] = getattr(note, field)

    else:
        note = None
        initial = {}

    form = NoteForm(request.POST or None, initial=initial)

    if form.is_valid():
        note = note or Note(author=request.user)

        for field in fields:
            setattr(note, field, form.cleaned_data[field])

        note.save()
        return HttpResponseRedirect(reverse('notes:note_list'))

    return direct_to_template(request, 'notes/note_edit.html', {
        'form': form,
        'create': not note
    })
Ejemplo n.º 45
0
def cam_manage(request, id, command):
    if command not in AVAILABLE_COMMANDS:
        return HttpResponseNotFound()

    cam = get_document_or_404(Camera, id=id)
    cam = Camera()

    return HttpResponse()
Ejemplo n.º 46
0
def get_request_url(method, version, appkey):
    #get method
    method = get_document_or_404(Method, name=method)
    
    #get appkey
    appkey = get_document_or_404(Appkey, name=appkey)
    
    if method.url.has_key(version):
        uri = method.url[version]
    else:
        raise Exception('no url found')
    
    #get server's ip and host
    server = method.server
    
    # combine ip port uri
    return "http://%s:%s/%s"%(server.ip, server.port, uri)
Ejemplo n.º 47
0
def view_message(request, message_id):
    message = get_document_or_404(Message, id=message_id)
    user = request.user
    _message_acl_check(message, user)

    if message.recipient.id == request.user.id and not message.is_read:
        message.set_readed()

    return direct_to_template(request, 'user_messages/message.html',
                              {'msg': message})
Ejemplo n.º 48
0
    def _edit_photo(self, pk):
        album = self.get_album()
        photo = get_document_or_404(album.photos, pk=pk)

        photo.comment = self.request.POST.get('comment')

        try:
            photo.save()
        except ValidationError, e:
            return {'error': "Comentário inválido"}
Ejemplo n.º 49
0
def remove_member(request, group, user_id):
    user = get_document_or_404(User, id=user_id)
    if group.can_remove_member(user):
        group.remove_member(user)
    else:
        messages.add_message(
            request, messages.ERROR,
            _('You can not leave the group. Give the administrator rights to another party.'
              ))
    return redirect(reverse('groups:members_manage', args=[group.id]))
Ejemplo n.º 50
0
def shortUrl(request, id):
    dataviz = get_document_or_404(DataVisualization, id=id)
    if not dataviz.short_url:

        mydict = {"url": get_shorturl(request, id)}
    else:
        mydict = {"url": "short_url"}

    response = Response(mydict["url"])
    return response
Ejemplo n.º 51
0
def group_leave(request, id):
    group = get_document_or_404(Group, id=id)
    if group.can_remove_member(request.user):
        group.remove_member(request.user)
    else:
        messages.add_message(
            request, messages.ERROR,
            _('You can not leave the group. Give the administrator rights to another party.'
              ))
    return redirect(reverse('groups:group_view', args=[id]))
Ejemplo n.º 52
0
def connect(request, socket, context, channel):
    logger.info("Subscribed to channel: " + channel + " with session id: " +
                str(socket.socket.session.session_id))
    document = get_document_or_404(Document, id=channel[3:])
    if document["text"] != None:
        logger.info("Document content: " + document["text"])
    message = {}
    message["text"] = document["text"]
    message["action"] = "doc"
    socket.send(message)
Ejemplo n.º 53
0
def group_conference(request, id):
    group = get_document_or_404(Group, id=id)
    is_active = group.is_active(request.user)
    if not (is_active or request.user.is_superuser):
        return redirect(reverse('groups:group_view', args=[id]))
    return direct_to_template(
        request, 'groups/group_conference.html',
        dict(
            group=group,
            is_admin=group.is_admin(request.user) or request.user.is_superuser,
        ))
Ejemplo n.º 54
0
def type_delete(request, id):
    type = get_document_or_404(GroupType, id=id)
    if Group.objects(type=type).count():
        messages.add_message(request, messages.ERROR,
                             _('You can not delete this group type.'))
    else:
        type.delete()
        messages.add_message(request, messages.SUCCESS,
                             _('Group type deleted.'))

    return redirect('groups:type_list')
Ejemplo n.º 55
0
 def wrapper(request, id, *args, **kwargs):
     group = get_document_or_404(Group, id=id)
     is_admin = group.is_admin(request.user) or request.user.is_superuser
     if not is_admin:
         if request.is_ajax():
             return HttpResponse(_('You are not allowed.'))
         else:
             messages.add_message(request, messages.ERROR,
                                  _('You are not allowed.'))
             return redirect(reverse('groups:group_view', args=[id]))
     return func(request, group, *args, **kwargs)
Ejemplo n.º 56
0
    def get_object(self, queryset=None):
        """
        Get a document instance for read/update/delete requests.
        """
        query_key = self.lookup_url_kwarg or self.lookup_field
        query_kwargs = {query_key: self.kwargs[query_key]}
        queryset = self.get_queryset()

        obj = get_document_or_404(queryset, **query_kwargs)
        self.check_object_permissions(self.request, obj)

        return obj
Ejemplo n.º 57
0
def file_view(request, theme_id, file_name):
    theme = get_document_or_404(Theme, id=theme_id)

    file = theme.files[file_name]
    if not file:
        raise Http404()

    response = HttpResponse(file.file.read(),
                            content_type=file.file.content_type)

    response['Last-Modified'] = file.file.upload_date
    return response
Ejemplo n.º 58
0
def cam_bookmarks(request, id=None):
    if id:
        user = get_document_or_404(User, id=id)
    else:
        user = request.user
    try:
        bookmarks = CameraBookmarks.objects.get(user=user)
    except CameraBookmarks.DoesNotExist:
        cameras = None
    else:
        cameras = bookmarks.cameras
    return direct_to_template(request, 'cam/bookmarks.html', {'cameras': cameras})