lib migration pt 2
This commit is contained in:
parent
ffc81f505b
commit
7d35959ac2
|
@ -22,30 +22,9 @@ pub struct TransferRecord {
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
pub fn state_to_csv(state: &MainState) -> Result<String, Box<dyn Error>> {
|
|
||||||
let mut records: Vec<TransferRecord> = Vec::new();
|
|
||||||
for transfer in &state.transfers {
|
|
||||||
let src_barcode = state
|
|
||||||
.source_plates
|
|
||||||
.iter()
|
|
||||||
.find(|spi| spi.get_uuid() == transfer.source_id)
|
|
||||||
.ok_or("Found unpurged transfer")?;
|
|
||||||
let dest_barcode = state
|
|
||||||
.destination_plates
|
|
||||||
.iter()
|
|
||||||
.find(|dpi| dpi.get_uuid() == transfer.dest_id)
|
|
||||||
.ok_or("Found unpurged transfer")?;
|
|
||||||
records.append(&mut transfer_to_records(
|
|
||||||
transfer,
|
|
||||||
&src_barcode.name,
|
|
||||||
&dest_barcode.name,
|
|
||||||
))
|
|
||||||
}
|
|
||||||
records_to_csv(records)
|
|
||||||
}
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
fn transfer_to_records(
|
pub fn transfer_to_records(
|
||||||
tr: &Transfer,
|
tr: &Transfer,
|
||||||
src_barcode: &str,
|
src_barcode: &str,
|
||||||
dest_barcode: &str,
|
dest_barcode: &str,
|
||||||
|
@ -73,7 +52,7 @@ fn transfer_to_records(
|
||||||
records
|
records
|
||||||
}
|
}
|
||||||
|
|
||||||
fn records_to_csv(trs: Vec<TransferRecord>) -> Result<String, Box<dyn Error>> {
|
pub fn records_to_csv(trs: Vec<TransferRecord>) -> Result<String, Box<dyn Error>> {
|
||||||
let mut wtr = csv::WriterBuilder::new().from_writer(vec![]);
|
let mut wtr = csv::WriterBuilder::new().from_writer(vec![]);
|
||||||
for record in trs {
|
for record in trs {
|
||||||
wtr.serialize(record)?
|
wtr.serialize(record)?
|
||||||
|
|
|
@ -41,3 +41,10 @@ impl From<Plate> for PlateInstance {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl From<&PlateInstance> for String {
|
||||||
|
fn from(value: &PlateInstance) -> Self {
|
||||||
|
// Could have other formatting here
|
||||||
|
format!("{}, {}", value.name, value.plate.plate_format)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -1,24 +1,22 @@
|
||||||
use std::collections::HashSet;
|
use std::collections::HashSet;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
use lazy_static::lazy_static;
|
use lazy_static::lazy_static;
|
||||||
use regex::Regex;
|
use regex::Regex;
|
||||||
use wasm_bindgen::{prelude::*, JsCast};
|
use wasm_bindgen::{prelude::*, JsCast};
|
||||||
use web_sys::{
|
use web_sys::{
|
||||||
FileReader, HtmlButtonElement, HtmlDialogElement,
|
FileReader, HtmlButtonElement, HtmlDialogElement, HtmlFormElement, HtmlInputElement,
|
||||||
HtmlFormElement, HtmlInputElement, HtmlOptionElement, HtmlSelectElement,
|
HtmlOptionElement, HtmlSelectElement,
|
||||||
};
|
};
|
||||||
use yew::prelude::*;
|
use yew::prelude::*;
|
||||||
use yewdux::prelude::*;
|
use yewdux::prelude::*;
|
||||||
|
|
||||||
use crate::components::states::{MainState};
|
use crate::components::states::MainState;
|
||||||
use crate::components::transfer_menu::letters_to_num;
|
use plate_tool_lib::util::letters_to_num;
|
||||||
|
|
||||||
use crate::data::transfer::Transfer;
|
use plate_tool_lib::transfer::Transfer;
|
||||||
use crate::data::transfer_region::{Region, TransferRegion};
|
use plate_tool_lib::transfer_region::{Region, TransferRegion};
|
||||||
|
|
||||||
use crate::data::csv::{TransferRecord};
|
use plate_tool_lib::csv::TransferRecord;
|
||||||
|
|
||||||
use super::main_window_callbacks::create_close_button;
|
use super::main_window_callbacks::create_close_button;
|
||||||
|
|
||||||
|
@ -111,7 +109,7 @@ pub fn import_transfer_csv_onload_callback(
|
||||||
log::info!("{}", modified);
|
log::info!("{}", modified);
|
||||||
let mut rdr = csv::Reader::from_reader(value.as_bytes());
|
let mut rdr = csv::Reader::from_reader(value.as_bytes());
|
||||||
let mut records = Vec::new();
|
let mut records = Vec::new();
|
||||||
for record in rdr.deserialize::<crate::data::csv::TransferRecord>() {
|
for record in rdr.deserialize::<plate_tool_lib::csv::TransferRecord>() {
|
||||||
match record {
|
match record {
|
||||||
Ok(r) => {
|
Ok(r) => {
|
||||||
//log::debug!("{:?}", r);
|
//log::debug!("{:?}", r);
|
||||||
|
|
|
@ -14,11 +14,7 @@ use yewdux::prelude::*;
|
||||||
|
|
||||||
use crate::components::states::{CurrentTransfer, MainState};
|
use crate::components::states::{CurrentTransfer, MainState};
|
||||||
|
|
||||||
|
use crate::state_to_csv;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
use crate::data::csv::{state_to_csv};
|
|
||||||
|
|
||||||
type NoParamsCallback = Box<dyn Fn(())>;
|
type NoParamsCallback = Box<dyn Fn(())>;
|
||||||
|
|
||||||
|
|
|
@ -5,8 +5,8 @@ use wasm_bindgen::JsCast;
|
||||||
use web_sys::{EventTarget, FormData, HtmlFormElement};
|
use web_sys::{EventTarget, FormData, HtmlFormElement};
|
||||||
|
|
||||||
use crate::components::states::MainState;
|
use crate::components::states::MainState;
|
||||||
use crate::data::plate::*;
|
use plate_tool_lib::plate::*;
|
||||||
use crate::data::plate_instances::PlateInstance;
|
use plate_tool_lib::plate_instances::PlateInstance;
|
||||||
|
|
||||||
pub fn new_plate_callback(
|
pub fn new_plate_callback(
|
||||||
dispatch: Dispatch<MainState>,
|
dispatch: Dispatch<MainState>,
|
||||||
|
|
|
@ -6,7 +6,7 @@ use yew::prelude::*;
|
||||||
use yewdux::prelude::*;
|
use yewdux::prelude::*;
|
||||||
|
|
||||||
use crate::components::transfer_menu::RegionDisplay;
|
use crate::components::transfer_menu::RegionDisplay;
|
||||||
use crate::data::{transfer::Transfer, transfer_region::Region};
|
use plate_tool_lib::{transfer::Transfer, transfer_region::Region};
|
||||||
|
|
||||||
use crate::components::states::{CurrentTransfer, MainState};
|
use crate::components::states::{CurrentTransfer, MainState};
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ use yew::prelude::*;
|
||||||
use yewdux::prelude::*;
|
use yewdux::prelude::*;
|
||||||
|
|
||||||
use crate::components::states::{CurrentTransfer, MainState};
|
use crate::components::states::{CurrentTransfer, MainState};
|
||||||
use crate::data::transfer_region::Region;
|
use plate_tool_lib::transfer_region::Region;
|
||||||
|
|
||||||
type NoParamsCallback = Box<dyn Fn(())>;
|
type NoParamsCallback = Box<dyn Fn(())>;
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,4 @@
|
||||||
#![allow(non_snake_case)]
|
#![allow(non_snake_case)]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
use yew::prelude::*;
|
use yew::prelude::*;
|
||||||
use yewdux::prelude::*;
|
use yewdux::prelude::*;
|
||||||
|
|
||||||
|
@ -12,7 +8,7 @@ use crate::components::states::{CurrentTransfer, MainState};
|
||||||
use crate::components::transfer_menu::TransferMenu;
|
use crate::components::transfer_menu::TransferMenu;
|
||||||
use crate::components::tree::Tree;
|
use crate::components::tree::Tree;
|
||||||
|
|
||||||
use crate::data::plate_instances::PlateInstance;
|
use plate_tool_lib::plate_instances::PlateInstance;
|
||||||
|
|
||||||
use crate::components::callbacks::main_window_callbacks;
|
use crate::components::callbacks::main_window_callbacks;
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ use yewdux::prelude::*;
|
||||||
use web_sys::HtmlDialogElement;
|
use web_sys::HtmlDialogElement;
|
||||||
|
|
||||||
use crate::components::states::MainState;
|
use crate::components::states::MainState;
|
||||||
use crate::data::plate_instances::PlateInstance;
|
use plate_tool_lib::plate_instances::PlateInstance;
|
||||||
|
|
||||||
use crate::components::callbacks::new_plate_dialog_callbacks;
|
use crate::components::callbacks::new_plate_dialog_callbacks;
|
||||||
|
|
||||||
|
@ -69,10 +69,3 @@ pub fn NewPlateDialog(props: &NewPlateDialogProps) -> Html {
|
||||||
</dialog>
|
</dialog>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<&PlateInstance> for String {
|
|
||||||
fn from(value: &PlateInstance) -> Self {
|
|
||||||
// Could have other formatting here
|
|
||||||
format!("{}, {}", value.name, value.plate.plate_format)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -5,15 +5,15 @@ use yew::prelude::*;
|
||||||
use yewdux::prelude::*;
|
use yewdux::prelude::*;
|
||||||
|
|
||||||
use crate::components::states::{CurrentTransfer, MainState};
|
use crate::components::states::{CurrentTransfer, MainState};
|
||||||
use crate::data::plate::PlateType;
|
use plate_tool_lib::plate::PlateType;
|
||||||
use crate::data::transfer::Transfer;
|
use plate_tool_lib::transfer::Transfer;
|
||||||
use crate::data::transfer_region::Region;
|
use plate_tool_lib::transfer_region::Region;
|
||||||
|
|
||||||
// Color Palette for the Source Plates, can be changed here
|
// Color Palette for the Source Plates, can be changed here
|
||||||
use crate::components::plates::util::Palettes;
|
use crate::components::plates::util::Palettes;
|
||||||
const PALETTE: super::util::ColorPalette = Palettes::RAINBOW;
|
const PALETTE: super::util::ColorPalette = Palettes::RAINBOW;
|
||||||
|
|
||||||
use super::super::transfer_menu::{num_to_letters};
|
use plate_tool_lib::util::num_to_letters;
|
||||||
|
|
||||||
use super::plate_data::*;
|
use super::plate_data::*;
|
||||||
use super::plate_callbacks;
|
use super::plate_callbacks;
|
||||||
|
|
|
@ -2,7 +2,7 @@ use yew::prelude::*;
|
||||||
use yewdux::prelude::*;
|
use yewdux::prelude::*;
|
||||||
|
|
||||||
use crate::components::states::CurrentTransfer;
|
use crate::components::states::CurrentTransfer;
|
||||||
use crate::data::transfer_region::Region;
|
use plate_tool_lib::transfer_region::Region;
|
||||||
|
|
||||||
// Color Palette for the Source Plates, can be changed here
|
// Color Palette for the Source Plates, can be changed here
|
||||||
|
|
||||||
|
|
|
@ -3,8 +3,8 @@ use wasm_bindgen::prelude::Closure;
|
||||||
use wasm_bindgen::JsCast;
|
use wasm_bindgen::JsCast;
|
||||||
use yew::prelude::*;
|
use yew::prelude::*;
|
||||||
|
|
||||||
use crate::data::plate::PlateType;
|
use plate_tool_lib::plate::PlateType;
|
||||||
use crate::data::plate_instances::PlateInstance;
|
use plate_tool_lib::plate_instances::PlateInstance;
|
||||||
|
|
||||||
// use super::destination_plate::DestinationPlate;
|
// use super::destination_plate::DestinationPlate;
|
||||||
// use super::source_plate::SourcePlate;
|
// use super::source_plate::SourcePlate;
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
|
|
||||||
use yew::prelude::*;
|
use yew::prelude::*;
|
||||||
|
|
||||||
use crate::data::plate_instances::PlateInstance;
|
use plate_tool_lib::plate_instances::PlateInstance;
|
||||||
use crate::data::plate::PlateType;
|
use plate_tool_lib::plate::PlateType;
|
||||||
|
|
||||||
#[derive(PartialEq, Properties)]
|
#[derive(PartialEq, Properties)]
|
||||||
pub struct PlateProps {
|
pub struct PlateProps {
|
||||||
|
|
|
@ -2,10 +2,6 @@
|
||||||
// https://iquilezles.org/articles/palettes/
|
// https://iquilezles.org/articles/palettes/
|
||||||
// http://dev.thi.ng/gradients/
|
// http://dev.thi.ng/gradients/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#[derive(Clone, Copy, PartialEq, Debug)]
|
#[derive(Clone, Copy, PartialEq, Debug)]
|
||||||
pub struct ColorPalette {
|
pub struct ColorPalette {
|
||||||
a: [f64; 3],
|
a: [f64; 3],
|
||||||
|
|
|
@ -2,9 +2,9 @@ use serde::{Deserialize, Serialize};
|
||||||
use uuid::Uuid;
|
use uuid::Uuid;
|
||||||
use yewdux::{prelude::*, storage};
|
use yewdux::{prelude::*, storage};
|
||||||
|
|
||||||
use crate::data::plate::*;
|
use plate_tool_lib::plate::*;
|
||||||
use crate::data::plate_instances::PlateInstance;
|
use plate_tool_lib::plate_instances::PlateInstance;
|
||||||
use crate::data::transfer::Transfer;
|
use plate_tool_lib::transfer::Transfer;
|
||||||
|
|
||||||
#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize, Store)]
|
#[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize, Store)]
|
||||||
#[store(storage = "session")]
|
#[store(storage = "session")]
|
||||||
|
|
|
@ -7,7 +7,8 @@ use yew::prelude::*;
|
||||||
use yewdux::prelude::*;
|
use yewdux::prelude::*;
|
||||||
|
|
||||||
use crate::components::callbacks::transfer_menu_callbacks;
|
use crate::components::callbacks::transfer_menu_callbacks;
|
||||||
use crate::data::transfer_region::Region;
|
use plate_tool_lib::transfer_region::Region;
|
||||||
|
use plate_tool_lib::util::{letters_to_num, num_to_letters};
|
||||||
|
|
||||||
use super::states::{CurrentTransfer, MainState};
|
use super::states::{CurrentTransfer, MainState};
|
||||||
|
|
||||||
|
@ -282,6 +283,8 @@ impl TryFrom<(u8, u8, u8, u8)> for RegionDisplay {
|
||||||
mod tests {
|
mod tests {
|
||||||
use wasm_bindgen_test::*;
|
use wasm_bindgen_test::*;
|
||||||
|
|
||||||
|
use super::*;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[wasm_bindgen_test]
|
#[wasm_bindgen_test]
|
||||||
fn test_try_from_string_for_regiondisplay() {
|
fn test_try_from_string_for_regiondisplay() {
|
||||||
|
|
29
src/lib.rs
29
src/lib.rs
|
@ -1,12 +1,15 @@
|
||||||
#![allow(non_snake_case)]
|
#![allow(non_snake_case)]
|
||||||
mod components;
|
mod components;
|
||||||
mod data;
|
|
||||||
|
use std::error::Error;
|
||||||
|
|
||||||
use components::main_window::MainWindow;
|
use components::main_window::MainWindow;
|
||||||
|
use components::states::MainState;
|
||||||
|
use plate_tool_lib::csv::*;
|
||||||
use yew::prelude::*;
|
use yew::prelude::*;
|
||||||
|
|
||||||
#[cfg(debug_assertions)]
|
#[cfg(debug_assertions)]
|
||||||
use data::*;
|
use plate_tool_lib::*;
|
||||||
|
|
||||||
#[function_component]
|
#[function_component]
|
||||||
pub fn App() -> Html {
|
pub fn App() -> Html {
|
||||||
|
@ -35,3 +38,25 @@ pub fn plate_test() {
|
||||||
println!("{:?} -> {:?}", w, m(w));
|
println!("{:?} -> {:?}", w, m(w));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn state_to_csv(state: &MainState) -> Result<String, Box<dyn Error>> {
|
||||||
|
let mut records: Vec<TransferRecord> = Vec::new();
|
||||||
|
for transfer in &state.transfers {
|
||||||
|
let src_barcode = state
|
||||||
|
.source_plates
|
||||||
|
.iter()
|
||||||
|
.find(|spi| spi.get_uuid() == transfer.source_id)
|
||||||
|
.ok_or("Found unpurged transfer")?;
|
||||||
|
let dest_barcode = state
|
||||||
|
.destination_plates
|
||||||
|
.iter()
|
||||||
|
.find(|dpi| dpi.get_uuid() == transfer.dest_id)
|
||||||
|
.ok_or("Found unpurged transfer")?;
|
||||||
|
records.append(&mut transfer_to_records(
|
||||||
|
transfer,
|
||||||
|
&src_barcode.name,
|
||||||
|
&dest_barcode.name,
|
||||||
|
))
|
||||||
|
}
|
||||||
|
records_to_csv(records)
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue