123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- use crate::database::database_editor::TestRowBuilder;
- use collab_database::database::{gen_database_id, gen_database_view_id, DatabaseData};
- use collab_database::views::{DatabaseLayout, DatabaseView, LayoutSetting, LayoutSettings};
- use flowy_database2::entities::FieldType;
- use flowy_database2::services::field::{FieldBuilder, MultiSelectTypeOption};
- use flowy_database2::services::setting::CalendarLayoutSetting;
- use strum::IntoEnumIterator;
- // Calendar unit test mock data
- pub fn make_test_calendar() -> DatabaseData {
- let mut fields = vec![];
- let mut rows = vec![];
- // text
- let text_field = FieldBuilder::from_field_type(FieldType::RichText)
- .name("Name")
- .visibility(true)
- .primary(true)
- .build();
- fields.push(text_field);
- // date
- let date_field = FieldBuilder::from_field_type(FieldType::DateTime)
- .name("Date")
- .visibility(true)
- .build();
- let date_field_id = date_field.id.clone();
- fields.push(date_field);
- // multi select
- let type_option = MultiSelectTypeOption::default();
- let multi_select_field = FieldBuilder::new(FieldType::MultiSelect, type_option)
- .name("Tags")
- .visibility(true)
- .build();
- fields.push(multi_select_field);
- let calendar_setting: LayoutSetting = CalendarLayoutSetting::new(date_field_id).into();
- for i in 0..5 {
- let mut row_builder = TestRowBuilder::new(i.into(), &fields);
- match i {
- 0 => {
- for field_type in FieldType::iter() {
- match field_type {
- FieldType::RichText => row_builder.insert_text_cell("A"),
- FieldType::DateTime => row_builder.insert_date_cell(
- "1678090778",
- None,
- None,
- Some(chrono_tz::Tz::Etc__GMTPlus8.to_string()),
- &field_type,
- ),
- _ => "".to_owned(),
- };
- }
- },
- 1 => {
- for field_type in FieldType::iter() {
- match field_type {
- FieldType::RichText => row_builder.insert_text_cell("B"),
- FieldType::DateTime => row_builder.insert_date_cell(
- "1677917978",
- None,
- None,
- Some(chrono_tz::Tz::Etc__GMTPlus8.to_string()),
- &field_type,
- ),
- _ => "".to_owned(),
- };
- }
- },
- 2 => {
- for field_type in FieldType::iter() {
- match field_type {
- FieldType::RichText => row_builder.insert_text_cell("C"),
- FieldType::DateTime => row_builder.insert_date_cell(
- "1679213978",
- None,
- None,
- Some(chrono_tz::Tz::Etc__GMTPlus8.to_string()),
- &field_type,
- ),
- _ => "".to_owned(),
- };
- }
- },
- 3 => {
- for field_type in FieldType::iter() {
- match field_type {
- FieldType::RichText => row_builder.insert_text_cell("D"),
- FieldType::DateTime => row_builder.insert_date_cell(
- "1678695578",
- None,
- None,
- Some(chrono_tz::Tz::Etc__GMTPlus8.to_string()),
- &field_type,
- ),
- _ => "".to_owned(),
- };
- }
- },
- 4 => {
- for field_type in FieldType::iter() {
- match field_type {
- FieldType::RichText => row_builder.insert_text_cell("E"),
- FieldType::DateTime => row_builder.insert_date_cell(
- "1678695578",
- None,
- None,
- Some(chrono_tz::Tz::Etc__GMTPlus8.to_string()),
- &field_type,
- ),
- _ => "".to_owned(),
- };
- }
- },
- _ => {},
- }
- let row = row_builder.build();
- rows.push(row);
- }
- let mut layout_settings = LayoutSettings::new();
- layout_settings.insert(DatabaseLayout::Calendar, calendar_setting);
- let view = DatabaseView {
- id: gen_database_view_id(),
- database_id: gen_database_id(),
- name: "".to_string(),
- layout: DatabaseLayout::Calendar,
- layout_settings,
- filters: vec![],
- group_settings: vec![],
- sorts: vec![],
- row_orders: vec![],
- field_orders: vec![],
- created_at: 0,
- modified_at: 0,
- };
- DatabaseData { view, fields, rows }
- }
|