You've already forked AstralRinth
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:
@@ -138,26 +138,6 @@
|
|||||||
},
|
},
|
||||||
"query": "\n UPDATE versions\n SET downloads = $1\n WHERE (id = $2)\n "
|
"query": "\n UPDATE versions\n SET downloads = $1\n WHERE (id = $2)\n "
|
||||||
},
|
},
|
||||||
"06c2d67bcbc95baa4b7e5865ec9adec7f068c1dfd3f859c29465b8d8a40343e0": {
|
|
||||||
"describe": {
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"name": "id",
|
|
||||||
"ordinal": 0,
|
|
||||||
"type_info": "Int8"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"nullable": [
|
|
||||||
false
|
|
||||||
],
|
|
||||||
"parameters": {
|
|
||||||
"Left": [
|
|
||||||
"Int8"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"query": "\n SELECT m.id FROM mods m\n INNER JOIN team_members tm ON tm.team_id = m.team_id AND tm.accepted = TRUE\n WHERE tm.user_id = $1\n "
|
|
||||||
},
|
|
||||||
"07ebc9dc82cd012cd4f5880b1eb3d82602c195a3e3ddd557103ee037aa6dad1c": {
|
"07ebc9dc82cd012cd4f5880b1eb3d82602c195a3e3ddd557103ee037aa6dad1c": {
|
||||||
"describe": {
|
"describe": {
|
||||||
"columns": [],
|
"columns": [],
|
||||||
@@ -931,6 +911,26 @@
|
|||||||
},
|
},
|
||||||
"query": "\n DELETE FROM mods_gallery\n WHERE mod_id = $1\n "
|
"query": "\n DELETE FROM mods_gallery\n WHERE mod_id = $1\n "
|
||||||
},
|
},
|
||||||
|
"220e59ae72edef546e3c7682ae91336bfba3e4230add1543910d80e846e0ad95": {
|
||||||
|
"describe": {
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"name": "id",
|
||||||
|
"ordinal": 0,
|
||||||
|
"type_info": "Int8"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"nullable": [
|
||||||
|
false
|
||||||
|
],
|
||||||
|
"parameters": {
|
||||||
|
"Left": [
|
||||||
|
"Int8"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"query": "\n SELECT m.id FROM mods m\n INNER JOIN team_members tm ON tm.team_id = m.team_id AND tm.accepted = TRUE\n WHERE tm.user_id = $1\n ORDER BY m.downloads DESC\n "
|
||||||
|
},
|
||||||
"2278a7db5eb0474576fa9c86ba97bd6bf13864b3f9ce55ed2ab0cb94edbadaf5": {
|
"2278a7db5eb0474576fa9c86ba97bd6bf13864b3f9ce55ed2ab0cb94edbadaf5": {
|
||||||
"describe": {
|
"describe": {
|
||||||
"columns": [
|
"columns": [
|
||||||
@@ -1786,27 +1786,6 @@
|
|||||||
},
|
},
|
||||||
"query": "\n SELECT id, user_id, role, permissions, accepted\n FROM team_members\n WHERE (team_id = $1 AND user_id = $2 AND accepted = TRUE)\n "
|
"query": "\n SELECT id, user_id, role, permissions, accepted\n FROM team_members\n WHERE (team_id = $1 AND user_id = $2 AND accepted = TRUE)\n "
|
||||||
},
|
},
|
||||||
"4ccf5373d9593fd19622dba270ae2b194f8029f2fb05ad00ff6b3f2ac4d589b0": {
|
|
||||||
"describe": {
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"name": "id",
|
|
||||||
"ordinal": 0,
|
|
||||||
"type_info": "Int8"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"nullable": [
|
|
||||||
false
|
|
||||||
],
|
|
||||||
"parameters": {
|
|
||||||
"Left": [
|
|
||||||
"Int8",
|
|
||||||
"Text"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"query": "\n SELECT m.id FROM mods m\n INNER JOIN team_members tm ON tm.team_id = m.team_id AND tm.accepted = TRUE\n WHERE tm.user_id = $1 AND m.status = (SELECT s.id FROM statuses s WHERE s.status = $2)\n "
|
|
||||||
},
|
|
||||||
"4cfafb61d38608152743c38cb8fb9a9c35e788fcbefe6f7f81476a3f144af3f8": {
|
"4cfafb61d38608152743c38cb8fb9a9c35e788fcbefe6f7f81476a3f144af3f8": {
|
||||||
"describe": {
|
"describe": {
|
||||||
"columns": [
|
"columns": [
|
||||||
@@ -3234,6 +3213,27 @@
|
|||||||
},
|
},
|
||||||
"query": "\n SELECT tm.id, tm.team_id, tm.user_id, tm.role, tm.permissions, tm.accepted FROM versions v\n INNER JOIN mods m ON m.id = v.mod_id\n INNER JOIN team_members tm ON tm.team_id = m.team_id AND tm.user_id = $2 AND tm.accepted = TRUE\n WHERE v.id = $1\n "
|
"query": "\n SELECT tm.id, tm.team_id, tm.user_id, tm.role, tm.permissions, tm.accepted FROM versions v\n INNER JOIN mods m ON m.id = v.mod_id\n INNER JOIN team_members tm ON tm.team_id = m.team_id AND tm.user_id = $2 AND tm.accepted = TRUE\n WHERE v.id = $1\n "
|
||||||
},
|
},
|
||||||
|
"844735a1ffd4b17c96e0cc441c85b3d05325523b415c509bbf2860b7e1ca0de3": {
|
||||||
|
"describe": {
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"name": "id",
|
||||||
|
"ordinal": 0,
|
||||||
|
"type_info": "Int8"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"nullable": [
|
||||||
|
false
|
||||||
|
],
|
||||||
|
"parameters": {
|
||||||
|
"Left": [
|
||||||
|
"Int8",
|
||||||
|
"Text"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"query": "\n SELECT m.id FROM mods m\n INNER JOIN team_members tm ON tm.team_id = m.team_id AND tm.accepted = TRUE\n WHERE tm.user_id = $1 AND m.status = (SELECT s.id FROM statuses s WHERE s.status = $2)\n ORDER BY m.downloads DESC\n "
|
||||||
|
},
|
||||||
"87fd169e19ba231c6cf131ad2841d5c3b95adde53e5ed4000f8e7d54c0e87320": {
|
"87fd169e19ba231c6cf131ad2841d5c3b95adde53e5ed4000f8e7d54c0e87320": {
|
||||||
"describe": {
|
"describe": {
|
||||||
"columns": [],
|
"columns": [],
|
||||||
|
|||||||
@@ -209,6 +209,7 @@ impl User {
|
|||||||
SELECT m.id FROM mods m
|
SELECT m.id FROM mods m
|
||||||
INNER JOIN team_members tm ON tm.team_id = m.team_id AND tm.accepted = TRUE
|
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)
|
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,
|
user_id as UserId,
|
||||||
status,
|
status,
|
||||||
@@ -235,6 +236,7 @@ impl User {
|
|||||||
SELECT m.id FROM mods m
|
SELECT m.id FROM mods m
|
||||||
INNER JOIN team_members tm ON tm.team_id = m.team_id AND tm.accepted = TRUE
|
INNER JOIN team_members tm ON tm.team_id = m.team_id AND tm.accepted = TRUE
|
||||||
WHERE tm.user_id = $1
|
WHERE tm.user_id = $1
|
||||||
|
ORDER BY m.downloads DESC
|
||||||
",
|
",
|
||||||
user_id as UserId,
|
user_id as UserId,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ use super::ids::*;
|
|||||||
use super::DatabaseError;
|
use super::DatabaseError;
|
||||||
use crate::database::models::convert_postgres_date;
|
use crate::database::models::convert_postgres_date;
|
||||||
use chrono::{DateTime, Utc};
|
use chrono::{DateTime, Utc};
|
||||||
|
use std::cmp::Ordering;
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
||||||
pub struct VersionBuilder {
|
pub struct VersionBuilder {
|
||||||
@@ -665,7 +666,8 @@ impl Version {
|
|||||||
})
|
})
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
v.files
|
let mut files: Vec<QueryFile> = v
|
||||||
|
.files
|
||||||
.unwrap_or_default()
|
.unwrap_or_default()
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.flat_map(|f| {
|
.flat_map(|f| {
|
||||||
@@ -697,7 +699,17 @@ impl Version {
|
|||||||
None
|
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: {
|
game_versions: {
|
||||||
let game_versions = v.game_versions.unwrap_or_default();
|
let game_versions = v.game_versions.unwrap_or_default();
|
||||||
@@ -832,7 +844,7 @@ impl Version {
|
|||||||
}
|
}
|
||||||
}).collect();
|
}).collect();
|
||||||
|
|
||||||
v.files.unwrap_or_default()
|
let mut files: Vec<QueryFile> = v.files.unwrap_or_default()
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.flat_map(|f| {
|
.flat_map(|f| {
|
||||||
let file: Vec<&str> = f.split(" |||| ").collect();
|
let file: Vec<&str> = f.split(" |||| ").collect();
|
||||||
@@ -858,7 +870,18 @@ impl Version {
|
|||||||
} else {
|
} else {
|
||||||
None
|
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: {
|
game_versions: {
|
||||||
let game_versions = v
|
let game_versions = v
|
||||||
|
|||||||
Reference in New Issue
Block a user