Skip to content

Commit ecd2714

Browse files
Chaos 616 campaign info page (#623)
* Added fields to campaign and organisation * add dev email as admin in seeding script * Create build-seeding-binaries.yml * create db before building seeding binaries * Delete build-seeding-binaries.yml * update database-seeding run with `--email` arg * Created client facing campaign details page * Updated campaign rolls endpoint to accept campaign_id as a number for proper fetching of roles per campaign * campaign details ssr & translations * fe campaign type fixes * Update Cargo.lock * fix changing RoleDetails id type to number * Changed 'slate' colouring to 'gray' and removed dark mode tailwind support --------- Co-authored-by: Kavika <kavika.palletenne@devsoc.app> Co-authored-by: Christian <199553279+drboom16@users.noreply.github.com>
1 parent bbab130 commit ecd2714

File tree

19 files changed

+1478
-506
lines changed

19 files changed

+1478
-506
lines changed

.github/workflows/rust.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,4 +80,4 @@ jobs:
8080
working-directory: backend/database-seeding
8181
run: |
8282
cargo build
83-
cargo run
83+
cargo run -- --email me@example.com

backend/database-seeding/Cargo.lock

Lines changed: 122 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

backend/database-seeding/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,5 @@ server = { path = "../server" }
1010
tokio = { version = "1.34", features = ["macros"]}
1111
chrono = { version = "0.4", features = ["serde"] }
1212

13-
14-
dotenvy = "0.15"
13+
dotenvy = "0.15"
14+
clap = { version = "4.5", features = ["derive"] }
Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,22 @@
1+
use clap::Parser;
12
use crate::seeder::*;
23
pub mod seeder;
34

5+
/// Seed data for development use
6+
#[derive(Parser, Debug)]
7+
#[command(version, about, long_about = None)]
8+
struct Args {
9+
/// Your Google account email - will be used to provide Organisation Admin & SuperUser privileges
10+
#[arg(short, long)]
11+
pub email: String,
12+
}
13+
414
#[tokio::main]
515
async fn main() {
616
dotenvy::dotenv().expect("Failed to load .env");
17+
let args = Args::parse();
718

819
let seeder = init().await;
920

10-
seed_database(seeder).await;
21+
seed_database(args.email.to_lowercase(), seeder).await;
1122
}

backend/database-seeding/src/seeder.rs

Lines changed: 38 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,20 +24,20 @@ pub async fn init() -> Seeder {
2424
seeder
2525
}
2626

27-
pub async fn seed_database(mut seeder: Seeder) {
27+
pub async fn seed_database(dev_email: String, mut seeder: Seeder) {
2828
let mut tx = seeder.app_state.db.begin().await.expect("Error beginning DB transaction");
2929

3030
// Super User
3131
let users = vec![
3232
User {
3333
id: 1,
34-
email: "example.superuser@chaos.devsoc.app".to_string(),
35-
zid: Some("z5555555".to_string()),
36-
name: "Francis Urquhart".to_string(),
37-
pronouns: Some("Ze/Za".to_string()),
38-
gender: Some("Otter".to_string()),
39-
degree_name: Some("Bachelor of Arts".to_string()),
40-
degree_starting_year: Some(1900),
34+
email: dev_email,
35+
zid: Some("z5555558".to_string()),
36+
name: "Chaos Developer".to_string(),
37+
pronouns: None,
38+
gender: None,
39+
degree_name: Some("Bachelor of Chaos Development (Honours)".to_string()),
40+
degree_starting_year: Some(2024),
4141
role: UserRole::SuperUser,
4242
},
4343
User {
@@ -61,16 +61,30 @@ pub async fn seed_database(mut seeder: Seeder) {
6161
degree_name: Some("Bachelor of Social Work (Honours)".to_string()),
6262
degree_starting_year: Some(2024),
6363
role: UserRole::User,
64-
}
64+
},
65+
User {
66+
id: 4,
67+
email: "example.superuser@chaos.devsoc.app".to_string(),
68+
zid: Some("z5555555".to_string()),
69+
name: "Francis Urquhart".to_string(),
70+
pronouns: Some("Ze/Za".to_string()),
71+
gender: Some("Otter".to_string()),
72+
degree_name: Some("Bachelor of Arts".to_string()),
73+
degree_starting_year: Some(1900),
74+
role: UserRole::SuperUser,
75+
},
6576
];
6677

6778
for user in users {
6879
User::create_user(user, &mut tx).await.expect("Failed seeding Root User");
6980
}
7081

71-
let org_id = Organisation::create(1,
82+
let org_id = Organisation::create(
83+
1, // User number 1, i.e. Developer
7284
"devsoc".to_string(),
7385
"UNSW DevSoc".to_string(),
86+
"contact@devsoc.app".to_string(),
87+
Some("https://devsoc.app".to_string()),
7488
&mut seeder.app_state.snowflake_generator,
7589
&mut tx).await.expect("Failed seeding Organisation");
7690

@@ -92,6 +106,20 @@ pub async fn seed_database(mut seeder: Seeder) {
92106
chrono::NaiveDate::from_ymd_opt(2040, 1, 1).unwrap().and_hms_milli_opt(0, 0, 0, 0).unwrap(),
93107
Utc,
94108
),
109+
Some(DateTime::<Utc>::from_naive_utc_and_offset(
110+
chrono::NaiveDate::from_ymd_opt(2041, 1, 1).unwrap().and_hms_milli_opt(0, 0, 0, 0).unwrap(),
111+
Utc,
112+
)),
113+
Some(DateTime::<Utc>::from_naive_utc_and_offset(
114+
chrono::NaiveDate::from_ymd_opt(2042, 1, 1).unwrap().and_hms_milli_opt(0, 0, 0, 0).unwrap(),
115+
Utc,
116+
)),
117+
Some("in-person".to_string()),
118+
Some(DateTime::<Utc>::from_naive_utc_and_offset(
119+
chrono::NaiveDate::from_ymd_opt(2043, 1, 1).unwrap().and_hms_milli_opt(0, 0, 0, 0).unwrap(),
120+
Utc,
121+
)),
122+
Some("Resume required".to_string()),
95123
&mut tx,
96124
&mut seeder.app_state.snowflake_generator,
97125
)
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
-- Add migration script here
2+
ALTER TABLE campaigns
3+
ADD COLUMN interview_period_starts_at TIMESTAMPTZ,
4+
ADD COLUMN interview_period_ends_at TIMESTAMPTZ,
5+
ADD COLUMN interview_format TEXT,
6+
ADD COLUMN outcomes_released_at TIMESTAMPTZ,
7+
ADD COLUMN application_requirements TEXT;
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
-- Add migration script here
2+
ALTER TABLE organisations
3+
ADD COLUMN contact_email TEXT NOT NULL,
4+
ADD COLUMN website_url TEXT;

backend/server/src/handler/organisation.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ impl OrganisationHandler {
4949
data.admin,
5050
data.slug,
5151
data.name,
52+
data.contact_email,
53+
data.website_url,
5254
&mut state.snowflake_generator,
5355
&mut transaction.tx,
5456
)
@@ -444,6 +446,11 @@ impl OrganisationHandler {
444446
request_body.description,
445447
request_body.starts_at,
446448
request_body.ends_at,
449+
request_body.interview_period_starts_at,
450+
request_body.interview_period_ends_at,
451+
request_body.interview_format,
452+
request_body.outcomes_released_at,
453+
request_body.application_requirements,
447454
&mut transaction.tx,
448455
&mut state.snowflake_generator,
449456
)

0 commit comments

Comments
 (0)