コード例 #1
0
ファイル: views.py プロジェクト: xuxiaoyu89/ShareStuff
def addResource(request):
    loggedin = True
    if not helper.Helper().isLoggedin(request):
        return redirect('login')
    email = request.session.data.keys()[0]
    context = RequestContext(request)
    if request.method == 'POST':
        form = forms.ResourceForm(request.POST, request.FILES)
        if form.is_valid():
            # save the resource to db
            nm = form.cleaned_data['name']
            descr = form.cleaned_data['description']
            tgs = form.cleaned_data['tags'].split()
            currdate = datetime.date.today()
            st = datetime.datetime.combine(currdate,
                                           form.cleaned_data['starttime'])
            et = datetime.datetime.combine(currdate,
                                           form.cleaned_data['endtime'])
            imgblob = None
            img = None
            if 'image' in request.FILES:
                img = request.FILES['image']
                imgblob = db.Blob(img.read())
            # save the resource
            resource = models.Resource(owner=email,
                                       name=nm,
                                       description=descr,
                                       image=imgblob,
                                       tags=tgs,
                                       postdate=currdate,
                                       starttime=st,
                                       endtime=et)
            resource.put()
            return redirect('home')
        else:
            message = form.errors
            form = forms.ResourceForm(initial={
                'resource_id': 0000,
            })
            return render_to_response('addResource.html', {
                'message': message,
                'loggedin': loggedin,
                'form': form
            }, context)
    else:
        form = forms.ResourceForm(initial={'resource_id': 0000})
    return render_to_response('addResource.html', {
        'loggedin': loggedin,
        'form': form
    }, context)
コード例 #2
0
def add_resource():
    form = forms.ResourceForm()
    if form.validate_on_submit():
        resource = models.Resource.create(title=form.title.data,
                                          abstract=form.abstract.data,
                                          links=form.links.data)
        flash("Resource created")
        return redirect(url_for('view_resource', resource_id=resource.id))
    return render_template('resource_add.html', form=form)
コード例 #3
0
def edit_resource(resource_id):
    resource = None
    try:
        resource = models.Resource.get(models.Resource.id == resource_id)
    except models.DoesNotExist:
        abort(404)
    form = forms.ResourceForm(obj=resource)
    if form.validate_on_submit():
        form.populate_obj(resource)
        resource.save()
        flash("Resource updated")
        return redirect(url_for('list_resources'))
    return render_template('resource_edit.html', form=form)
コード例 #4
0
ファイル: app.py プロジェクト: LewNic1/tech-mo
def resource():
    resources = models.Resources.select().limit(10)

    form = forms.ResourceForm()
    if form.validate_on_submit():
        models.Resources.create(user=g.user._get_current_object(),
                                category=form.category.data,
                                title=form.title.data,
                                content=form.content.data)
        flash('Resource created!', 'alert alert-success')

        return redirect(url_for('resource'))

    return render_template('resources.html', form=form, resources=resources)
コード例 #5
0
ファイル: views.py プロジェクト: xuxiaoyu89/ShareStuff
def editResource(request):
    if not helper.Helper().isLoggedin(request):
        return redirect('login')
    email = request.session.data.keys()[0]
    context = RequestContext(request)
    if request.method == 'POST':
        form = forms.ResourceForm(request.POST)
        if form.is_valid():
            r_id = form.cleaned_data['resource_id']
            nm = form.cleaned_data['name']
            descr = form.cleaned_data['description']
            tgs = form.cleaned_data['tags'].split()
            currdate = datetime.date.today()
            st = datetime.datetime.combine(currdate,
                                           form.cleaned_data['starttime'])
            et = datetime.datetime.combine(currdate,
                                           form.cleaned_data['endtime'])
            imgblob = None
            if 'image' in request.FILES:
                img = request.FILES['image']
                imgblob = db.Blob(img.read())
            # get the resource from database
            k = db.Key.from_path('Resource', int(r_id))
            resource = db.get(k)
            #resource.delete()
            #return redirect('home')
            # resource = models.Resource.get_by_id(r_id)
            if resource.owner != email:
                return redirect('home')
            resource.name = nm
            resource.description = descr
            resource.tags = tgs
            resource.starttime = st
            resource.endtime = et
            resource.image = imgblob
            resource.put()
            return redirect('home')

    return redirect('home')
コード例 #6
0
ファイル: views.py プロジェクト: xuxiaoyu89/ShareStuff
def resource(request, resource_id):
    # test if logged in
    loggedin = False
    if helper.Helper().isLoggedin(request):
        loggedin = True
    # show upcomming reservations
    # get the current time
    q = db.GqlQuery("SELECT * FROM Reservation where resource= :1",
                    resource_id)
    results = q.run()
    # show the reservation time and user
    # pack (reservartion_ID, username, reservation)
    reservations_with_info = []
    for reservation in results:
        # not show dated reservations
        curr_time = datetime.datetime.now() - datetime.timedelta(hours=5)
        et = reservation.starttime + datetime.timedelta(
            hours=reservation.duration)
        if curr_time > et:
            continue
        user = reservation.user
        username = db.GqlQuery("SELECT * FROM User where email = :1",
                               user).get().name
        reservations_with_info.append(
            (reservation.key().id_or_name(), username, reservation))

    user = '******'
    session = get_current_session()
    skeys = request.session.data.keys()
    isOwner = False
    if session.is_active() and skeys and session.has_key(skeys[0]):
        user = skeys[0]
    context = RequestContext(request)
    q = db.GqlQuery(
        "SELECT * FROM Resource where __key__ = KEY('Resource', :1)",
        int(resource_id))
    resource = q.get()
    if resource.owner == user:
        isOwner = True  # the resource is owned by the current user, so we can show the edit form to the user
    # get owner of this resource
    owner = db.GqlQuery("SELECT * FROM User where email = :1",
                        resource.owner).get()
    owner_id = owner.key().id_or_name()
    owner_name = owner.name
    #image of this resource
    hasimage = False
    if resource.image:
        hasimage = True
    reserve_form = forms.ReserveForm(initial={
        'user': user,
        'resource_id': resource_id
    })
    edit_form = forms.ResourceForm(
        initial={
            'resource_id': resource_id,
            'name': resource.name,
            'description': resource.description,
            'tags': helper.Helper().tagstr(resource.tags),
            'starttime': resource.starttime.strftime("%I:%M %p"),
            'endtime': resource.endtime.strftime("%I:%M %p")
        })
    return render_to_response(
        'resource.html', {
            'loggedin': loggedin,
            'owner_id': owner_id,
            'owner_name': owner_name,
            'resource': resource,
            'resource_id': resource_id,
            'hasimage': hasimage,
            'reservations': reservations_with_info,
            'reserve_form': reserve_form,
            'edit_form': edit_form,
            'isOwner': isOwner
        }, context)