| 325 | } |
| 326 | |
| 327 | removeRedundantClans (clans) { |
| 328 | // Don't show low-level clans that have same members as higher-level clans (ex.: the class for a teacher with one class) |
| 329 | const relevantClans = [] |
| 330 | const clansByMembers = _.groupBy(clans, c => (c.members != null ? c.members : []).sort().join(',')) |
| 331 | const kindHierarchy = ['school-network', 'school-subnetwork', 'school-district', 'school', 'teacher', 'class'] |
| 332 | for (const members in clansByMembers) { |
| 333 | clans = clansByMembers[members] |
| 334 | relevantClans.push(_.sortBy(clans, c => kindHierarchy.indexOf(c.kind))[0]) |
| 335 | } |
| 336 | return relevantClans |
| 337 | } |
| 338 | |
| 339 | sortMyClans () { |
| 340 | this.myClans = _.sortBy(this.myClans, clan => { |