def createCodeReview(self, req): struct = CodeReviewStruct(None) struct.Author = util.get_reporter_id(req) struct.Status = 'Open for review' struct.DateCreate = int(time.time()) struct.Name = req.args.get('Name') struct.Notes = req.args.get('Notes') id = struct.save(self.env.get_db_cnx()) # loop here through all the reviewers # and create new reviewer structs based on them string = req.args.get('ReviewersSelected') tokens = string.split('#') for token in tokens: if token != "": struct = ReviewerStruct(None) struct.IDReview = id struct.Reviewer = token struct.Status = 'Not Reviewed' struct.Vote = "-1" struct.save(self.env.get_db_cnx()) # loop here through all included files # and create new file structs based on them files = req.args.get('FilesSelected') items = files.split('#') for item in items: if item != "": segment = item.split(',') struct = ReviewFileStruct(None) struct.IDReview = id struct.Path = segment[0] struct.Version = segment[1] struct.LineStart = segment[2] struct.LineEnd = segment[3] struct.save(self.env.get_db_cnx()) return id
def performSearch(self, req): #create a code review struct to hold the search parameters crStruct = CodeReviewStruct(None) #get the search parameters from POST author = req.args.get('Author') name = req.args.get('CodeReviewName') status = req.args.get('Status') month = req.args.get('DateMonth') day = req.args.get('DateDay') year = req.args.get('DateYear') #check for entered date values, if none are set #default to 0 if(month == None): month = '0'; if(day == None): day = '0'; if(year == None): year = '0'; #store date values for ClearSilver - used to reset values to #search parameters after a search is performed req.hdf['searchValues.month'] = month; req.hdf['searchValues.day'] = day; req.hdf['searchValues.year'] = year; req.hdf['searchValues.status'] = status; req.hdf['searchValues.author'] = author; req.hdf['searchValues.name'] = name; #dates are ints in TRAC - convert search date to int fromdate = "-1"; if((month != '0') and (day != '0') and (year != '0')): t = time.strptime(month + '/' + day + '/' + year[2] + year[3], '%x') #I have no idea what this is doing - obtained from TRAC source fromdate = time.mktime((t[0], t[1], t[2], 23, 59, 59, t[6], t[7], t[8])) #convert to string for database lookup fromdate = `fromdate` selectString = 'Select...' req.hdf['dateSelected'] = fromdate; #if user has not selected parameter - leave #value in struct NULL if(author != selectString): crStruct.Author = author if(name != selectString): crStruct.Name = name; if(status != selectString): crStruct.Status = status crStruct.DateCreate = fromdate; #get the database db = self.env.get_db_cnx() dbBack = dbBackend(db) #perform search results = dbBack.searchCodeReviews(crStruct) returnArray = [] tempArray = [] if(results == None): return returnArray #fill ClearSilver friendly array with #search results for struct in results: tempArray.append(struct.IDReview) tempArray.append(struct.Author) tempArray.append(struct.Status) tempArray.append(format_date(struct.DateCreate)) tempArray.append(struct.Name) returnArray.append(tempArray) tempArray = [] return returnArray;