private static function updateDatabase( $title, $assessments, $timestamp ) {
		$main_title = Title::makeTitle( NS_MAIN, $title->getText() );
		$ratings = Rating::forTitle( $main_title );
		foreach ( $assessments as $project => $assessment ) {
			$curRating = $ratings[$project];
			if( $curRating ) {
				$curRating->update( $assessment['importance'], $assessment['quality'], $timestamp );
			} else {
				$rating = new Rating(
					$project, 
					$main_title->getNamespace(),
					$main_title->getText(),
					$assessment['quality'],
					$timestamp,
					$assessment['importance'],
					$timestamp
				);
				$rating->saveAll();
				
				if( isset( $assessment['quality'] ) ) {
					AssessmentChangeLog::makeEntry(
						$project,
						$main_title->getNamespace(),
						$main_title->getText(),
						$timestamp,
						"quality",
						"",
						$assessment['quality'],
						$timestamp
					);
				}
				if( isset( $assessment['importance'] ) ) {
					AssessmentChangeLog::makeEntry(
						$project,
						$main_title->getNamespace(),
						$main_title->getText(),
						$timestamp,
						"importance",
						"",
						$assessment['importance'],
						$timestamp
					);
				}
			}
		}
	}
Esempio n. 2
0
	public function update( $importance, $quality, $timestamp ) {
		$logAction = ""; // q for quality change, i for importance change, qi for both
		if( $quality != $this->quality ) {
			$this->old_quality = $this->quality;
			$this->quality = $quality;
			$this->quality_timestamp = $timestamp;
			$logAction .= "q";
		}
		if( $importance != $this->importance ) {
			$this->old_importance = $this->importance;
			$this->importance = $importance;
			$this->importance_timestamp = $timestamp;
			$logAction .= "i";
		}
		if( $logAction != "") {
			$timestamp = wfTimestamp( TS_MW );
			if( strpos( $logAction, 'q' ) !== false ) {
				AssessmentChangeLog::makeEntry(
					$this->project,
					$this->namespace,
					$this->title,
					$timestamp,
					"quality",
					$this->old_quality,
					$this->quality,
					$timestamp
				);
			}
			if( strpos( $logAction, 'i' ) !== false ) {
				AssessmentChangeLog::makeEntry(
					$this->project,
					$this->namespace,
					$this->title,
					$timestamp,
					"importance",
					$this->old_importance,
					$this->importance,
					$timestamp
				);
			}
			
			$this->saveAll();
		}
	}