forked from didirus/AstralRinth
Sort version files and mods on user profile (#432)
* ??? * Moardering fixes Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
This commit is contained in:
@@ -209,6 +209,7 @@ impl User {
|
||||
SELECT m.id FROM mods m
|
||||
INNER JOIN team_members tm ON tm.team_id = m.team_id AND tm.accepted = TRUE
|
||||
WHERE tm.user_id = $1 AND m.status = (SELECT s.id FROM statuses s WHERE s.status = $2)
|
||||
ORDER BY m.downloads DESC
|
||||
",
|
||||
user_id as UserId,
|
||||
status,
|
||||
@@ -235,6 +236,7 @@ impl User {
|
||||
SELECT m.id FROM mods m
|
||||
INNER JOIN team_members tm ON tm.team_id = m.team_id AND tm.accepted = TRUE
|
||||
WHERE tm.user_id = $1
|
||||
ORDER BY m.downloads DESC
|
||||
",
|
||||
user_id as UserId,
|
||||
)
|
||||
|
||||
@@ -2,6 +2,7 @@ use super::ids::*;
|
||||
use super::DatabaseError;
|
||||
use crate::database::models::convert_postgres_date;
|
||||
use chrono::{DateTime, Utc};
|
||||
use std::cmp::Ordering;
|
||||
use std::collections::HashMap;
|
||||
|
||||
pub struct VersionBuilder {
|
||||
@@ -665,7 +666,8 @@ impl Version {
|
||||
})
|
||||
.collect();
|
||||
|
||||
v.files
|
||||
let mut files: Vec<QueryFile> = v
|
||||
.files
|
||||
.unwrap_or_default()
|
||||
.into_iter()
|
||||
.flat_map(|f| {
|
||||
@@ -697,7 +699,17 @@ impl Version {
|
||||
None
|
||||
}
|
||||
})
|
||||
.collect()
|
||||
.collect();
|
||||
files.sort_by(|a, b| {
|
||||
if a.primary {
|
||||
Ordering::Less
|
||||
} else if b.primary {
|
||||
Ordering::Greater
|
||||
} else {
|
||||
a.filename.cmp(&b.filename)
|
||||
}
|
||||
});
|
||||
files
|
||||
},
|
||||
game_versions: {
|
||||
let game_versions = v.game_versions.unwrap_or_default();
|
||||
@@ -832,7 +844,7 @@ impl Version {
|
||||
}
|
||||
}).collect();
|
||||
|
||||
v.files.unwrap_or_default()
|
||||
let mut files: Vec<QueryFile> = v.files.unwrap_or_default()
|
||||
.into_iter()
|
||||
.flat_map(|f| {
|
||||
let file: Vec<&str> = f.split(" |||| ").collect();
|
||||
@@ -858,7 +870,18 @@ impl Version {
|
||||
} else {
|
||||
None
|
||||
}
|
||||
}).collect()
|
||||
})
|
||||
.collect();
|
||||
files.sort_by(|a, b| {
|
||||
if a.primary {
|
||||
Ordering::Less
|
||||
} else if b.primary {
|
||||
Ordering::Greater
|
||||
} else {
|
||||
a.filename.cmp(&b.filename)
|
||||
}
|
||||
});
|
||||
files
|
||||
},
|
||||
game_versions: {
|
||||
let game_versions = v
|
||||
|
||||
Reference in New Issue
Block a user