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)
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)
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)
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)
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')
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)