r114023 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r114022‎ | r114023 | r114024 >
Date:16:59, 16 March 2012
Author:jeroendedauw
Status:deferred (Comments)
Tags:
Comment:
work on special:studentactivity and adding frank his images
Modified paths:
  • /trunk/extensions/EducationProgram/EducationProgram.i18n.php (modified) (history)
  • /trunk/extensions/EducationProgram/EducationProgram.php (modified) (history)
  • /trunk/extensions/EducationProgram/EducationProgram.settings.php (modified) (history)
  • /trunk/extensions/EducationProgram/includes/EPStudentActivityPager.php (added) (history)
  • /trunk/extensions/EducationProgram/resources/images/flag_brazil.png (added) (history)
  • /trunk/extensions/EducationProgram/resources/images/flag_canada.png (added) (history)
  • /trunk/extensions/EducationProgram/resources/images/flag_egypt.png (added) (history)
  • /trunk/extensions/EducationProgram/resources/images/flag_germany.png (added) (history)
  • /trunk/extensions/EducationProgram/resources/images/flag_india.png (added) (history)
  • /trunk/extensions/EducationProgram/resources/images/flag_israel.png (added) (history)
  • /trunk/extensions/EducationProgram/resources/images/flag_mexico.png (added) (history)
  • /trunk/extensions/EducationProgram/resources/images/flag_sweden.png (added) (history)
  • /trunk/extensions/EducationProgram/resources/images/flag_tchech+republic.png (added) (history)
  • /trunk/extensions/EducationProgram/resources/images/flag_unitedkingdom.png (added) (history)
  • /trunk/extensions/EducationProgram/resources/images/flag_unitedstates.png (added) (history)
  • /trunk/extensions/EducationProgram/resources/images/student-o-meter_morethan-0.png (added) (history)
  • /trunk/extensions/EducationProgram/resources/images/student-o-meter_morethan-10.png (added) (history)
  • /trunk/extensions/EducationProgram/resources/images/student-o-meter_morethan-20.png (added) (history)
  • /trunk/extensions/EducationProgram/resources/images/student-o-meter_morethan-30.png (added) (history)
  • /trunk/extensions/EducationProgram/resources/images/student-o-meter_morethan-40.png (added) (history)
  • /trunk/extensions/EducationProgram/resources/images/student-o-meter_morethan-5.png (added) (history)
  • /trunk/extensions/EducationProgram/resources/images/student-o-meter_morethan-50.png (added) (history)
  • /trunk/extensions/EducationProgram/resources/images/student-o-meter_morethan-60.png (added) (history)
  • /trunk/extensions/EducationProgram/specials/SpecialStudentActivity.php (modified) (history)

Diff [purge]

Index: trunk/extensions/EducationProgram/EducationProgram.settings.php
@@ -27,6 +27,11 @@
2828 * @return array
2929 */
3030 protected static function getDefaultSettings() {
 31+ global $wgExtensionAssetsPath, $wgScriptPath;
 32+
 33+ $resourceDir = $egSWLScriptPath = $wgExtensionAssetsPath === false ? $wgScriptPath . '/extensions' : $wgExtensionAssetsPath;
 34+ $resourceDir .= '/EducationProgram/resources/';
 35+
3136 return array(
3237 'enableTopLink' => true,
3338 'ambassadorPictureDomains' => array(
@@ -35,7 +40,9 @@
3641 'ambassadorCommonsUrl' => 'https://commons.wikimedia.org/wiki/Special:UploadWizard',
3742 'citylessCountries' => array( 'BT', 'BV', 'IO', 'VG', 'TD', 'CX', 'CC', 'KM', 'DJ', 'GQ', 'FK', 'FX', 'TF', 'GW', 'HM', 'KI', 'YT', 'MS', 'NR', 'NU', 'NF', 'PN', 'SH', 'PM', 'WS', 'SC', 'GS', 'SJ', 'TK', 'TP', 'TV', 'UM', 'VU', 'EH' ),
3843 'ambassadorImgWidth' => 140,
39 - 'recentActivityLimit' => 24 * 60 * 60,
 44+ 'recentActivityLimit' => 17 * 60 * 60,
 45+ 'resourceDir' => $resourceDir,
 46+ 'imageDir' => $resourceDir . 'images/',
4047 );
4148 }
4249
Index: trunk/extensions/EducationProgram/EducationProgram.php
@@ -123,6 +123,7 @@
124124 $wgAutoloadClasses['EPInstructors'] = dirname( __FILE__ ) . '/includes/EPInstructors.php';
125125 $wgAutoloadClasses['EPRevisions'] = dirname( __FILE__ ) . '/includes/EPRevisions.php';
126126 $wgAutoloadClasses['EPArticles'] = dirname( __FILE__ ) . '/includes/EPArticles.php';
 127+$wgAutoloadClasses['EPStudentActivityPager'] = dirname( __FILE__ ) . '/includes/EPStudentActivityPager.php';
127128
128129 $wgAutoloadClasses['CoursePage'] = dirname( __FILE__ ) . '/pages/CoursePage.php';
129130 $wgAutoloadClasses['EPPage'] = dirname( __FILE__ ) . '/pages/EPPage.php';
Index: trunk/extensions/EducationProgram/specials/SpecialStudentActivity.php
@@ -34,9 +34,15 @@
3535
3636 $this->displayNavigation();
3737
 38+ $conds = array( 'last_active > ' . wfGetDB( DB_SLAVE )->addQuotes(
 39+ wfTimestamp( TS_MW, time() - ( EPSettings::get( 'recentActivityLimit' ) ) )
 40+ ) );
 41+
 42+ $this->showStudentMeter( $conds );
 43+
3844 $out = $this->getOutput();
3945
40 - $pager = new EPStudentActivityPager( $this->getContext(), array() );
 46+ $pager = new EPStudentActivityPager( $this->getContext(), $conds );
4147
4248 if ( $pager->getNumRows() ) {
4349 $out->addHTML(
@@ -53,250 +59,23 @@
5460 }
5561 }
5662
57 -}
 63+ public function showStudentMeter( array $conds ) {
 64+ $studentCount = EPStudents::singleton()->count( $conds );
5865
59 -
60 -/**
61 - * Student pager, primarily for Special:Students.
62 - *
63 - * @since 0.1
64 - *
65 - * @file EPStudentPager.php
66 - * @ingroup EductaionProgram
67 - *
68 - * @licence GNU GPL v3 or later
69 - * @author Jeroen De Dauw < jeroendedauw@gmail.com >
70 - */
71 -class EPStudentActivityPager extends EPPager {
72 -
73 - /**
74 - * List of user ids mapped to user names and real names, set in doBatchLookups.
75 - * The real names will just hold the user name when no real name is set.
76 - * user id => array( user name, real name )
77 - *
78 - * @since 0.1
79 - * @var array
80 - */
81 - protected $userNames = array();
82 -
83 - /**
84 - * List of course ids mapped to their title names.
85 - * course id => course name
86 - *
87 - * @since 0.1
88 - * @var array
89 - */
90 - protected $courseNames = array();
91 -
92 - /**
93 - * List of course ids pointing to the id of their org.
94 - * course id => org id
95 - *
96 - * @since 0.1
97 - * @var array
98 - */
99 - protected $courseOrgs = array();
100 -
101 - /**
102 - * List of org ids mapped to their title names.
103 - * org id => org name
104 - *
105 - * @since 0.1
106 - * @var array
107 - */
108 - protected $orgNames = array();
109 -
110 - /**
111 - * Constructor.
112 - *
113 - * @param IContextSource $context
114 - * @param array $conds
115 - */
116 - public function __construct( IContextSource $context, array $conds = array() ) {
117 - $this->mDefaultDirection = true;
118 -
119 - $conds[] = 'last_active > ' . wfGetDB( DB_SLAVE )->addQuotes(
120 - wfTimestamp( TS_MW, time() - ( EPSettings::get( 'recentActivityLimit' ) ) )
121 - );
122 -
123 - parent::__construct( $context, $conds, EPStudents::singleton() );
124 - }
125 -
126 - /**
127 - * (non-PHPdoc)
128 - * @see EPPager::getFields()
129 - */
130 - public function getFields() {
131 - return array(
132 - 'id',
133 - 'user_id',
134 - 'last_course',
135 - 'last_active',
136 - );
137 - }
138 -
139 - /**
140 - * (non-PHPdoc)
141 - * @see TablePager::getRowClass()
142 - */
143 - function getRowClass( $row ) {
144 - return 'ep-studentactivity-row';
145 - }
146 -
147 - /**
148 - * (non-PHPdoc)
149 - * @see TablePager::getTableClass()
150 - */
151 - public function getTableClass() {
152 - return 'TablePager ep-studentactivity';
153 - }
154 -
155 - /**
156 - * (non-PHPdoc)
157 - * @see EPPager::getFormattedValue()
158 - */
159 - protected function getFormattedValue( $name, $value ) {
160 - switch ( $name ) {
161 - case 'user_id':
162 - if ( array_key_exists( $value, $this->userNames ) ) {
163 - list( $userName, $realName ) = $this->userNames[$value];
164 - $value = Linker::userLink( $value, $userName, $realName ) . Linker::userToolLinks( $value, $userName );
165 - }
166 - else {
167 - wfWarn( 'User id not in $this->userNames in ' . __METHOD__ );
168 - }
169 - break;
170 - case 'last_active':
171 - $value = htmlspecialchars( $this->getLanguage()->timeanddate( $value ) );
172 - break;
173 - case 'last_course':
174 - if ( array_key_exists( $value, $this->courseNames ) ) {
175 - $value = EPCourses::singleton()->getLinkFor( $this->courseNames[$value] );
176 - }
177 - else {
178 - // TODO: enable
179 - //wfWarn( 'Course id not in $this->courseNames in ' . __METHOD__ );
180 - }
181 - break;
182 - case 'org_id':
183 - $courseId = $this->currentObject->getField( 'last_course' );
184 -
185 - if ( array_key_exists( $courseId, $this->courseOrgs ) ) {
186 - $orgId = $this->courseOrgs[$courseId];
187 -
188 - if ( array_key_exists( $orgId, $this->orgNames ) ) {
189 - $value = EPOrgs::singleton()->getLinkFor( $this->orgNames[$orgId] );
190 - }
191 - else {
192 - wfWarn( 'Org id not in $this->orgNames in ' . __METHOD__ );
193 - }
194 - }
195 - else {
196 - // TODO: enable
197 - //wfWarn( 'Course id not in $this->courseOrgs in ' . __METHOD__ );
198 - }
199 - break;
 66+ if ( $studentCount < 10 ) {
 67+ $image = $studentCount < 5 ? 0 : 5;
20068 }
201 -
202 - return $value;
203 - }
204 -
205 - /**
206 - * (non-PHPdoc)
207 - * @see EPPager::getSortableFields()
208 - */
209 - protected function getSortableFields() {
210 - return array(
211 - );
212 - }
213 -
214 - /**
215 - * (non-PHPdoc)
216 - * @see EPPager::hasActionsColumn()
217 - */
218 - protected function hasActionsColumn() {
219 - return false;
220 - }
221 -
222 - /**
223 - * (non-PHPdoc)
224 - * @see IndexPager::getDefaultSort()
225 - */
226 - function getDefaultSort() {
227 - return 'last_active';
228 - }
229 -
230 - /**
231 - * (non-PHPdoc)
232 - * @see EPPager::getFieldNames()
233 - */
234 - public function getFieldNames() {
235 - $fields = parent::getFieldNames();
236 -
237 - unset( $fields['id'] );
238 -
239 - $fields = wfArrayInsertAfter( $fields, array( 'org_id' => 'org-id' ), 'user_id' );
240 -
241 - return $fields;
242 - }
243 -
244 - /**
245 - * (non-PHPdoc)
246 - * @see IndexPager::doBatchLookups()
247 - */
248 - protected function doBatchLookups() {
249 - $userIds = array();
250 - $courseIds = array();
251 -
252 - $userField = $this->table->getPrefixedField( 'user_id' );
253 - $courseField = $this->table->getPrefixedField( 'last_course' );
254 -
255 - while( $student = $this->mResult->fetchObject() ) {
256 - $userIds[] = (int)$student->$userField;
257 - $courseIds[] = (int)$student->$courseField;
 69+ else {
 70+ $image = floor( $studentCount / 10 );
25871 }
25972
260 - if ( !empty( $userIds ) ) {
261 - $result = wfGetDB( DB_SLAVE )->select(
262 - 'user',
263 - array( 'user_id', 'user_name', 'user_real_name' ),
264 - array( 'user_id' => $userIds ),
265 - __METHOD__
266 - );
 73+ $message = $this->msg( 'ep-studentactivity-count', $studentCount )->escaped();
26774
268 - while( $user = $result->fetchObject() ) {
269 - $real = $user->user_real_name === '' ? $user->user_name : $user->user_real_name;
270 - $this->userNames[$user->user_id] = array( $user->user_name, $real );
271 - }
272 - }
273 -
274 - if ( !empty( $courseIds ) ) {
275 - $courses = EPCourses::singleton()->selectFields(
276 - array( 'id', 'name', 'org_id' ),
277 - array( 'id' => array_unique( $courseIds ) )
278 - );
279 -
280 - $orgIds = array();
281 -
282 - foreach ( $courses as $courseData ) {
283 - $this->courseNames[$courseData['id']] = $courseData['name'];
284 - $orgIds[] = $courseData['org_id'];
285 - $this->courseOrgs[$courseData['id']] = $courseData['org_id'];
286 - }
287 -
288 - $this->orgNames = EPOrgs::singleton()->selectFields(
289 - array( 'id', 'name' ),
290 - array( 'id' => array_unique( $orgIds ) )
291 - );
292 - }
 75+ $this->getOutput()->addElement( 'img', array(
 76+ 'src' => EPSettings::get( 'imageDir' ) . 'student-o-meter_morethan-' . $image . '.png',
 77+ 'alt' => $message,
 78+ 'title' => $message,
 79+ ) );
29380 }
29481
295 - /**
296 - * (non-PHPdoc)
297 - * @see EPPager::getMsg()
298 - */
299 - protected function getMsg( $messageKey ) {
300 - return wfMsg( strtolower( get_called_class() ) . '-' . str_replace( '_', '-', $messageKey ) );
301 - }
302 -
303 -}
\ No newline at end of file
 82+}
Index: trunk/extensions/EducationProgram/includes/EPStudentActivityPager.php
@@ -0,0 +1,239 @@
 2+<?php
 3+
 4+/**
 5+ * Student pager, primarily for Special:Students.
 6+ *
 7+ * @since 0.1
 8+ *
 9+ * @file EPStudentPager.php
 10+ * @ingroup EductaionProgram
 11+ *
 12+ * @licence GNU GPL v3 or later
 13+ * @author Jeroen De Dauw < jeroendedauw@gmail.com >
 14+ */
 15+class EPStudentActivityPager extends EPPager {
 16+
 17+ /**
 18+ * List of user ids mapped to user names and real names, set in doBatchLookups.
 19+ * The real names will just hold the user name when no real name is set.
 20+ * user id => array( user name, real name )
 21+ *
 22+ * @since 0.1
 23+ * @var array
 24+ */
 25+ protected $userNames = array();
 26+
 27+ /**
 28+ * List of course ids mapped to their title names.
 29+ * course id => course name
 30+ *
 31+ * @since 0.1
 32+ * @var array
 33+ */
 34+ protected $courseNames = array();
 35+
 36+ /**
 37+ * List of course ids pointing to the id of their org.
 38+ * course id => org id
 39+ *
 40+ * @since 0.1
 41+ * @var array
 42+ */
 43+ protected $courseOrgs = array();
 44+
 45+ /**
 46+ * List of org ids mapped to their title names.
 47+ * org id => org name
 48+ *
 49+ * @since 0.1
 50+ * @var array
 51+ */
 52+ protected $orgNames = array();
 53+
 54+ /**
 55+ * Constructor.
 56+ *
 57+ * @param IContextSource $context
 58+ * @param array $conds
 59+ */
 60+ public function __construct( IContextSource $context, array $conds = array() ) {
 61+ $this->mDefaultDirection = true;
 62+ parent::__construct( $context, $conds, EPStudents::singleton() );
 63+ }
 64+
 65+ /**
 66+ * (non-PHPdoc)
 67+ * @see EPPager::getFields()
 68+ */
 69+ public function getFields() {
 70+ return array(
 71+ 'id',
 72+ 'user_id',
 73+ 'last_course',
 74+ 'last_active',
 75+ );
 76+ }
 77+
 78+ /**
 79+ * (non-PHPdoc)
 80+ * @see TablePager::getRowClass()
 81+ */
 82+ function getRowClass( $row ) {
 83+ return 'ep-studentactivity-row';
 84+ }
 85+
 86+ /**
 87+ * (non-PHPdoc)
 88+ * @see TablePager::getTableClass()
 89+ */
 90+ public function getTableClass() {
 91+ return 'TablePager ep-studentactivity';
 92+ }
 93+
 94+ /**
 95+ * (non-PHPdoc)
 96+ * @see EPPager::getFormattedValue()
 97+ */
 98+ protected function getFormattedValue( $name, $value ) {
 99+ switch ( $name ) {
 100+ case 'user_id':
 101+ if ( array_key_exists( $value, $this->userNames ) ) {
 102+ list( $userName, $realName ) = $this->userNames[$value];
 103+ $value = Linker::userLink( $value, $userName, $realName ) . Linker::userToolLinks( $value, $userName );
 104+ }
 105+ else {
 106+ wfWarn( 'User id not in $this->userNames in ' . __METHOD__ );
 107+ }
 108+ break;
 109+ case 'last_active':
 110+ $value = htmlspecialchars( $this->getLanguage()->timeanddate( $value ) );
 111+ break;
 112+ case 'last_course':
 113+ if ( array_key_exists( $value, $this->courseNames ) ) {
 114+ $value = EPCourses::singleton()->getLinkFor( $this->courseNames[$value] );
 115+ }
 116+ else {
 117+ wfWarn( 'Course id not in $this->courseNames in ' . __METHOD__ );
 118+ }
 119+ break;
 120+ case 'org_id':
 121+ $courseId = $this->currentObject->getField( 'last_course' );
 122+
 123+ if ( array_key_exists( $courseId, $this->courseOrgs ) ) {
 124+ $orgId = $this->courseOrgs[$courseId];
 125+
 126+ if ( array_key_exists( $orgId, $this->orgNames ) ) {
 127+ $value = EPOrgs::singleton()->getLinkFor( $this->orgNames[$orgId] );
 128+ }
 129+ else {
 130+ wfWarn( 'Org id not in $this->orgNames in ' . __METHOD__ );
 131+ }
 132+ }
 133+ else {
 134+ wfWarn( 'Course id not in $this->courseOrgs in ' . __METHOD__ );
 135+ }
 136+ break;
 137+ }
 138+
 139+ return $value;
 140+ }
 141+
 142+ /**
 143+ * (non-PHPdoc)
 144+ * @see EPPager::getSortableFields()
 145+ */
 146+ protected function getSortableFields() {
 147+ return array(
 148+ );
 149+ }
 150+
 151+ /**
 152+ * (non-PHPdoc)
 153+ * @see EPPager::hasActionsColumn()
 154+ */
 155+ protected function hasActionsColumn() {
 156+ return false;
 157+ }
 158+
 159+ /**
 160+ * (non-PHPdoc)
 161+ * @see IndexPager::getDefaultSort()
 162+ */
 163+ function getDefaultSort() {
 164+ return 'last_active';
 165+ }
 166+
 167+ /**
 168+ * (non-PHPdoc)
 169+ * @see EPPager::getFieldNames()
 170+ */
 171+ public function getFieldNames() {
 172+ $fields = parent::getFieldNames();
 173+
 174+ unset( $fields['id'] );
 175+
 176+ $fields = wfArrayInsertAfter( $fields, array( 'org_id' => 'org-id' ), 'user_id' );
 177+
 178+ return $fields;
 179+ }
 180+
 181+ /**
 182+ * (non-PHPdoc)
 183+ * @see IndexPager::doBatchLookups()
 184+ */
 185+ protected function doBatchLookups() {
 186+ $userIds = array();
 187+ $courseIds = array();
 188+
 189+ $userField = $this->table->getPrefixedField( 'user_id' );
 190+ $courseField = $this->table->getPrefixedField( 'last_course' );
 191+
 192+ while( $student = $this->mResult->fetchObject() ) {
 193+ $userIds[] = (int)$student->$userField;
 194+ $courseIds[] = (int)$student->$courseField;
 195+ }
 196+
 197+ if ( !empty( $userIds ) ) {
 198+ $result = wfGetDB( DB_SLAVE )->select(
 199+ 'user',
 200+ array( 'user_id', 'user_name', 'user_real_name' ),
 201+ array( 'user_id' => $userIds ),
 202+ __METHOD__
 203+ );
 204+
 205+ while( $user = $result->fetchObject() ) {
 206+ $real = $user->user_real_name === '' ? $user->user_name : $user->user_real_name;
 207+ $this->userNames[$user->user_id] = array( $user->user_name, $real );
 208+ }
 209+ }
 210+
 211+ if ( !empty( $courseIds ) ) {
 212+ $courses = EPCourses::singleton()->selectFields(
 213+ array( 'id', 'name', 'org_id' ),
 214+ array( 'id' => array_unique( $courseIds ) )
 215+ );
 216+
 217+ $orgIds = array();
 218+
 219+ foreach ( $courses as $courseData ) {
 220+ $this->courseNames[$courseData['id']] = $courseData['name'];
 221+ $orgIds[] = $courseData['org_id'];
 222+ $this->courseOrgs[$courseData['id']] = $courseData['org_id'];
 223+ }
 224+
 225+ $this->orgNames = EPOrgs::singleton()->selectFields(
 226+ array( 'id', 'name' ),
 227+ array( 'id' => array_unique( $orgIds ) )
 228+ );
 229+ }
 230+ }
 231+
 232+ /**
 233+ * (non-PHPdoc)
 234+ * @see EPPager::getMsg()
 235+ */
 236+ protected function getMsg( $messageKey ) {
 237+ return wfMsg( strtolower( get_called_class() ) . '-' . str_replace( '_', '-', $messageKey ) );
 238+ }
 239+
 240+}
\ No newline at end of file
Index: trunk/extensions/EducationProgram/EducationProgram.i18n.php
@@ -775,6 +775,9 @@
776776 'epca-profile-saved' => 'Your profile has been saved',
777777 'epca-profile-invalid-bio' => 'Your bio needs to be at least contain $1 {{PLURAL:$1|character|characters}}.',
778778 'epca-visible' => 'Publicly list me as Campus Ambassador',
 779+
 780+ // Special:StudentActivity
 781+ 'ep-studentactivity-count' => 'There {{PLURAL:$1|is|are}} currently $1 {{PLURAL:$1|student|students}} that where active in the last 24 hours.',
779782 );
780783
781784 /** Message documentation (Message documentation)
Index: trunk/extensions/EducationProgram/resources/images/flag_canada.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: trunk/extensions/EducationProgram/resources/images/flag_canada.png
___________________________________________________________________
Added: svn:mime-type
782785 + application/octet-stream
Index: trunk/extensions/EducationProgram/resources/images/flag_unitedstates.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: trunk/extensions/EducationProgram/resources/images/flag_unitedstates.png
___________________________________________________________________
Added: svn:mime-type
783786 + application/octet-stream
Index: trunk/extensions/EducationProgram/resources/images/student-o-meter_morethan-10.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: trunk/extensions/EducationProgram/resources/images/student-o-meter_morethan-10.png
___________________________________________________________________
Added: svn:mime-type
784787 + application/octet-stream
Index: trunk/extensions/EducationProgram/resources/images/flag_israel.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: trunk/extensions/EducationProgram/resources/images/flag_israel.png
___________________________________________________________________
Added: svn:mime-type
785788 + application/octet-stream
Index: trunk/extensions/EducationProgram/resources/images/student-o-meter_morethan-20.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: trunk/extensions/EducationProgram/resources/images/student-o-meter_morethan-20.png
___________________________________________________________________
Added: svn:mime-type
786789 + application/octet-stream
Index: trunk/extensions/EducationProgram/resources/images/student-o-meter_morethan-30.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: trunk/extensions/EducationProgram/resources/images/student-o-meter_morethan-30.png
___________________________________________________________________
Added: svn:mime-type
787790 + application/octet-stream
Index: trunk/extensions/EducationProgram/resources/images/student-o-meter_morethan-40.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: trunk/extensions/EducationProgram/resources/images/student-o-meter_morethan-40.png
___________________________________________________________________
Added: svn:mime-type
788791 + application/octet-stream
Index: trunk/extensions/EducationProgram/resources/images/student-o-meter_morethan-50.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: trunk/extensions/EducationProgram/resources/images/student-o-meter_morethan-50.png
___________________________________________________________________
Added: svn:mime-type
789792 + application/octet-stream
Index: trunk/extensions/EducationProgram/resources/images/student-o-meter_morethan-60.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: trunk/extensions/EducationProgram/resources/images/student-o-meter_morethan-60.png
___________________________________________________________________
Added: svn:mime-type
790793 + application/octet-stream
Index: trunk/extensions/EducationProgram/resources/images/flag_brazil.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: trunk/extensions/EducationProgram/resources/images/flag_brazil.png
___________________________________________________________________
Added: svn:mime-type
791794 + application/octet-stream
Index: trunk/extensions/EducationProgram/resources/images/flag_india.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: trunk/extensions/EducationProgram/resources/images/flag_india.png
___________________________________________________________________
Added: svn:mime-type
792795 + application/octet-stream
Index: trunk/extensions/EducationProgram/resources/images/flag_mexico.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: trunk/extensions/EducationProgram/resources/images/flag_mexico.png
___________________________________________________________________
Added: svn:mime-type
793796 + application/octet-stream
Index: trunk/extensions/EducationProgram/resources/images/flag_tchech republic.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: trunk/extensions/EducationProgram/resources/images/flag_tchech republic.png
___________________________________________________________________
Added: svn:mime-type
794797 + application/octet-stream
Index: trunk/extensions/EducationProgram/resources/images/flag_sweden.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: trunk/extensions/EducationProgram/resources/images/flag_sweden.png
___________________________________________________________________
Added: svn:mime-type
795798 + application/octet-stream
Index: trunk/extensions/EducationProgram/resources/images/flag_egypt.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: trunk/extensions/EducationProgram/resources/images/flag_egypt.png
___________________________________________________________________
Added: svn:mime-type
796799 + application/octet-stream
Index: trunk/extensions/EducationProgram/resources/images/student-o-meter_morethan-0.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: trunk/extensions/EducationProgram/resources/images/student-o-meter_morethan-0.png
___________________________________________________________________
Added: svn:mime-type
797800 + application/octet-stream
Index: trunk/extensions/EducationProgram/resources/images/flag_unitedkingdom.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: trunk/extensions/EducationProgram/resources/images/flag_unitedkingdom.png
___________________________________________________________________
Added: svn:mime-type
798801 + application/octet-stream
Index: trunk/extensions/EducationProgram/resources/images/flag_germany.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: trunk/extensions/EducationProgram/resources/images/flag_germany.png
___________________________________________________________________
Added: svn:mime-type
799802 + application/octet-stream
Index: trunk/extensions/EducationProgram/resources/images/student-o-meter_morethan-5.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes on: trunk/extensions/EducationProgram/resources/images/student-o-meter_morethan-5.png
___________________________________________________________________
Added: svn:mime-type
800803 + application/octet-stream

Follow-up revisions

RevisionCommit summaryAuthorDate
r114024Crush images from r114023...reedy17:13, 16 March 2012
r114026follow up r114023 add missing pluraljeroendedauw17:58, 16 March 2012
r114059work on special:studentactivityjeroendedauw19:04, 17 March 2012

Comments

#Comment by Siebrand (talk | contribs)   17:10, 16 March 2012

1. Contains spelling and plural issues:

+    'ep-studentactivity-count' => 'There are currently $1 students that where active in the last 24 hours.',

2. How do you suggest the images will be localised? At least the text must be taken out.

#Comment by Jeroen De Dauw (talk | contribs)   17:59, 16 March 2012

1. Yes, I forgot to put in a plural, fixed in r114026. Where are the spelling issues though?

2. Sending frank an email about this, will cc you.

#Comment by Siebrand (talk | contribs)   17:12, 16 March 2012

To reduce maintenance, I suggest using flag images from commons. Their naming is very structured, and if needed, image redirects can be used.

#Comment by Jeroen De Dauw (talk | contribs)   18:00, 16 March 2012

Can you link to these? And do you suggest using them via instant commons?

#Comment by Siebrand (talk | contribs)   20:19, 16 March 2012
#Comment by Jeroen De Dauw (talk | contribs)   17:36, 18 March 2012

Indeed - 114059 :)

#Comment by 😂 (talk | contribs)   19:15, 21 March 2012

On the cluster it's not InstantCommons, it's a ForeignDBRepo. But the concept's the same.

#Comment by Jeroen De Dauw (talk | contribs)   19:17, 21 March 2012

Well yeah, InstantCommons is a specific ForeignDBRepo no?

#Comment by 😂 (talk | contribs)   19:23, 21 March 2012

InstantCommons is a specific ForeignAPIRepo. And we don't want/need that enabled on the cluster.

#Comment by Jeroen De Dauw (talk | contribs)   21:05, 21 March 2012

Sure. So are you just remarking on the terminology, or does the code actually need to be changed for it to work on the cluster?

#Comment by 😂 (talk | contribs)   21:06, 21 March 2012

Nothing I see needs changed. wfFindFile() works fine either way.

#Comment by Jeroen De Dauw (talk | contribs)   16:39, 4 April 2012

Images replaced by onew without the text on them in r114706

Status & tagging log