diff --git a/Rocket.toml b/Rocket.toml index 6d0c2e6..e690fcc 100644 --- a/Rocket.toml +++ b/Rocket.toml @@ -1,3 +1,7 @@ [debug] static_route = "http://localhost:8001" +cv_backend_path = "http://localhost:8002" + +[default] +static_route = "http://localhost:8001" cv_backend_path = "http://localhost:8002" \ No newline at end of file diff --git a/src/lib.rs b/src/lib.rs index 1fc377b..b273edb 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -2,7 +2,7 @@ use rocket::{*, fairing::AdHoc}; use rocket_dyn_templates::Template; use ::serde::Deserialize; -use tools::tera::{static_filter, translate_filter, calculate_age, insert_space_every, lang_entity, gravatar_link}; +use tools::tera::{static_filter, translate_filter, calculate_age, insert_space_every, lang_entity, gravatar_link, format_date}; pub mod routes; pub mod services; @@ -36,6 +36,7 @@ pub fn rocket_builder() -> Rocket { engines.tera.register_filter("gravatar_link", gravatar_link); // filters specific to API engines.tera.register_filter("lang_entity", lang_entity); + engines.tera.register_filter("format_date", format_date); Ok(()) }) ).attach( diff --git a/src/tools/tera.rs b/src/tools/tera.rs index f544726..470b84b 100644 --- a/src/tools/tera.rs +++ b/src/tools/tera.rs @@ -1,6 +1,6 @@ use std::{collections::HashMap, str::FromStr}; -use chrono::{Utc, Datelike}; +use chrono::{Utc, Datelike, NaiveDate}; use log::error; use rocket_dyn_templates::tera::{Value, Error}; use ovlach_data::cv::chrono::from_string; @@ -56,7 +56,7 @@ pub fn lang_entity( value: &Value, _: &HashMap ) -> Result { - error!("{:?}", value); // TODO: rewrite me!!! + // TODO: rewrite me! return Ok(rocket_dyn_templates::tera::Value::String(format!("{}", value["en"].as_str().unwrap()))); // TODO: fix-me here! } @@ -68,6 +68,30 @@ pub fn gravatar_link( return Ok(rocket_dyn_templates::tera::Value::String(format!("https://gravatar.com/avatar/{}", val))); // TODO: fix-me here! } +pub fn format_date( + value: &Value, + _: &HashMap +) -> Result { + + if value.is_null() { + return Ok(rocket_dyn_templates::tera::Value::String("".to_string())) + } + let val = value.as_str().unwrap(); + + if val == "" { + return Ok(rocket_dyn_templates::tera::Value::String("".to_string())) + } + + let value = from_string(value.as_str().unwrap().into()); + match value { + Ok(date) => Ok(rocket_dyn_templates::tera::Value::String(date.format("%Y").to_string())), + Err(e) => { + error!("Can't parse date: {}", e); + return Ok(rocket_dyn_templates::tera::Value::String("".to_string())) // TOdo: error + } + } +} + pub fn insert_space_every( value: &Value, args: &HashMap @@ -90,7 +114,6 @@ pub fn calculate_age( value: &Value, _: &HashMap ) -> Result { - error!("{:?}", value.as_str()); //let s = value.to_string().trim_matches('"'); // TODO: unwrap here! let value = from_string(value.as_str().unwrap().into()); match value { diff --git a/templates/default.html.tera b/templates/default.html.tera index 50963d6..4076792 100644 --- a/templates/default.html.tera +++ b/templates/default.html.tera @@ -63,7 +63,7 @@

{{ "about-me" | translate(lang=lang) }}

-

{{ cv.person.about | lang_entity }}

+

{{ cv.person.about | lang_entity(lang=lang) }}

@@ -147,8 +147,12 @@
{{ job.title }} at {{ job.company }}
-
May, 2015 - Present
-
{{ job.description | lang_entity }}
+ {% if job.from | format_date(type="job") != job.from | format_date(type="job") %} +
{{ job.from | format_date(type="job") }} - {{ job.to | format_date(type="job") }}
+ {% else %} +
{{ job.from | format_date(type="job") }}
+ {% endif %} +
{{ job.description | lang_entity(lang=lang) }}
{% endfor %} @@ -163,7 +167,7 @@
{% if education.degree %} -
{{ education.degree | lang_entity }} {{ education.school }}
+
{{ education.degree | lang_entity(lang=lang) }} {{ education.school }}
{% else %}
{{ education.school }}
{% endif %} @@ -171,8 +175,8 @@
{% if education.description %} -
2011 - 2013
-
{{ education.description | lang_entity }}
+
{{ education.from | format_date(type="job") }} - {{ education.to | format_date(type="job") }}
+
{{ education.description | lang_entity(lang=lang) }}
{% else %} 2011 - 2013 {% endif %}