def post(self): user = users.get_current_user(); rootPath = os.path.split(os.path.dirname(__file__))[0] if user and users.is_current_user_admin(): #delete the specified gigs from db prev = False next = True gigIds = self.request.get_all('gig_id'); deletedGigs = 0 for id in gigIds: gig = Gig.get_by_id(int(id)) if gig: gig.delete() deletedGigs += 1 gigs_query = Gig.all().order('-timing') gigs = gigs_query.fetch(DeleteGigs.PAGESIZE+1) if len(gigs) == DeleteGigs.PAGESIZE+1: gigs = gigs[:DeleteGigs.PAGESIZE] next = True template_values = { "gigslen" : len(gigs), "gigs" : gigs, 'username' : user.nickname(), 'success_msg' : str(deletedGigs)+" gigs successfully deleted", 'next' : next, 'previous' : prev, 'lastResultIndex' : len(gigs), } path = os.path.join(rootPath, "html/view.html") else: #insufficient privileges template_values = { 'error_msg' : "insufficient privileges" } path = os.path.join(rootPath, "html/error.html") self.response.out.write(template.render(path, template_values))
def get(self): user = users.get_current_user() rootPath = os.path.split(os.path.dirname(__file__))[0] successMsg = '' if user and users.is_current_user_admin(): #user is valid #get the gig id and enumerate edit form reqGigId = cgi.escape(self.request.get('gig_id')).strip() if reqGigId and len(reqGigId) > 0: #try to fetch gig gigToEdit = Gig.get_by_id(int(reqGigId)) if gigToEdit: #valid gigId, now send it to edit template successMsg = "valid gig being edited" else: #not found gig in db corresponding to gigid errorMsg = "Gig not found in DB" else: #gigid not received errorMsg = "empty gig id received" else: #not valid operation errorMsg = "Insufficient privilege" if len(successMsg) > 0: template_values = { 'gigToEdit' : gigToEdit, 'username' : user.nickname() } path = os.path.join(rootPath, "html/new_gig.html"); else: template_values = { 'errorMsg' : errorMsg } path = os.path.join(rootPath, "html/error.html"); self.response.out.write(template.render(path, template_values))
def validateRecentGigId(self, recentGigId): recentClientGig = None if recentGigId and len(recentGigId) > 0: recentClientGig = Gig.get_by_id(int(recentGigId)) return recentClientGig;
def post(self): user = users.get_current_user() rootPath = os.path.split(os.path.dirname(__file__))[0] successMsg = '' if user and users.is_current_user_admin(): #validate form inputs an create a new gig and store it #if invalid error with errorMsg "add all required fields" #TODO: replace this as to proper init in construct reqArtist = cgi.escape(self.request.get('artist')).strip() reqVenue = cgi.escape(self.request.get('venue')).strip() reqCity_loc = cgi.escape(self.request.get('city_loc')).strip() reqCity = cgi.escape(self.request.get('city')).strip().lower() reqEvent_url = cgi.escape(self.request.get('gig_url')).strip() reqGenre = cgi.escape(self.request.get('genre')).strip() reqDescription = cgi.escape(self.request.get('description')).strip() reqTiming = cgi.escape(self.request.get('date_time')).strip().lower() reqLatlong = cgi.escape(self.request.get('latlong')).strip().lower() requiredList = [ reqArtist, reqVenue, reqCity_loc, reqCity, reqTiming ] #get the gig id to be edited reqGigId = cgi.escape(self.request.get('gig_id')).strip() if not self.checkEmptyArgs(requiredList) or not self.checkDateTime(reqTiming): #erroneous input errorMsg = "invalid request params" else: #correct input, enter these details in db if reqGigId and len(reqGigId) > 0: #try to fetch gig gigToEdit = Gig.get_by_id(int(reqGigId)) if gigToEdit: #valid gigId, now send it to edit template successMsg = "valid gig being edited" gigToEdit.artist = reqArtist gigToEdit.venue = reqVenue gigToEdit.city_loc = reqCity_loc gigToEdit.city = reqCity gigToEdit.timing = self.checkDateTime(reqTiming) if len(reqEvent_url) > 0: url = urlparse(reqEvent_url, scheme='http') gigToEdit.event_url = db.Link(url.geturl()) gigToEdit.genre = reqGenre gigToEdit.description = reqDescription gigToEdit.latlong = reqLatlong gigToEdit.put() successMsg = "Event edited in db" else: #not found gig in db corresponding to gigid errorMsg = "Gig not found in DB" else: #gigid not received errorMsg = "empty gig id received" else: #not sufficient privileges errorMsg = "Not sufficient privileges" if len(successMsg)>0: template_values = { 'successMsg' : successMsg } path = os.path.join(rootPath, "html/new_gig.html"); else: template_values = { 'errorMsg' : errorMsg } path = os.path.join(rootPath, "html/error.html") self.response.out.write(template.render(path, template_values))