database returns default sheet even it there is no record
This commit is contained in:
parent
9eea9af249
commit
23cc987266
|
@ -53,7 +53,7 @@ impl<'a> Command<'a> for ArchiveCommand {
|
|||
let mut entries = {
|
||||
let start = args.start.map(|s| time_or_warning(s, &streams.db)).transpose()?.map(|s| s.0);
|
||||
let end = args.end.map(|e| time_or_warning(e, &streams.db)).transpose()?.map(|e| e.0);
|
||||
let current_sheet = streams.db.current_sheet()?.unwrap_or_else(|| "default".into());
|
||||
let current_sheet = streams.db.current_sheet()?;
|
||||
let sheet = args.sheet.unwrap_or(current_sheet);
|
||||
|
||||
streams.db.entries_by_sheet(&sheet, start, end)?
|
||||
|
|
|
@ -59,7 +59,7 @@ where
|
|||
Some(Sheet::Full) => streams.db.entries_full(start, end)?,
|
||||
Some(Sheet::Sheet(name)) => streams.db.entries_by_sheet(&name, start, end)?,
|
||||
None => {
|
||||
let current_sheet = streams.db.current_sheet()?.unwrap_or_else(|| "default".into());
|
||||
let current_sheet = streams.db.current_sheet()?;
|
||||
|
||||
streams.db.entries_by_sheet(¤t_sheet, start, end)?
|
||||
}
|
||||
|
|
|
@ -59,7 +59,7 @@ impl<'a> Command<'a> for EditCommand {
|
|||
O: Write,
|
||||
E: Write,
|
||||
{
|
||||
let current_sheet = streams.db.current_sheet()?.unwrap_or_else(|| "default".to_owned());
|
||||
let current_sheet = streams.db.current_sheet()?;
|
||||
let needs_warning = streams.db.version()? == DBVersion::Timetrap;
|
||||
|
||||
let entry = if let Some(id) = args.id {
|
||||
|
|
|
@ -42,7 +42,7 @@ impl<'a> Command<'a> for InCommand {
|
|||
E: Write,
|
||||
{
|
||||
let start = args.at.unwrap_or(facts.now);
|
||||
let sheet = streams.db.current_sheet()?.unwrap_or_else(|| "default".into());
|
||||
let sheet = streams.db.current_sheet()?;
|
||||
|
||||
if streams.db.running_entry(&sheet)?.is_some() {
|
||||
writeln!(streams.out, "Timer is already running for sheet '{}'", sheet)?;
|
||||
|
|
|
@ -56,11 +56,9 @@ impl<'a> Command<'a> for ListCommand {
|
|||
let last = streams.db.last_sheet()?;
|
||||
|
||||
// introducte two fake entries to make both current and last show up
|
||||
if let Some(ref current) = current {
|
||||
entries.push(Entry {
|
||||
id: 1, sheet: current.clone(), start: facts.now, end: Some(facts.now), note: None,
|
||||
});
|
||||
}
|
||||
entries.push(Entry {
|
||||
id: 1, sheet: current.clone(), start: facts.now, end: Some(facts.now), note: None,
|
||||
});
|
||||
|
||||
entries.sort_unstable_by_key(|e| e.sheet.clone());
|
||||
|
||||
|
@ -87,7 +85,7 @@ impl<'a> Command<'a> for ListCommand {
|
|||
total = total + s_total;
|
||||
|
||||
(
|
||||
if current.as_ref() == Some(&key) {
|
||||
if current == key {
|
||||
"*".into()
|
||||
} else if last.as_ref() == Some(&key) {
|
||||
"-".into()
|
||||
|
|
|
@ -62,7 +62,7 @@ impl<'a> Command<'a> for NowCommand {
|
|||
|
||||
for entry in entries {
|
||||
tabs.feed(vec![
|
||||
if current.as_ref() == Some(&entry.sheet) {
|
||||
if current == entry.sheet {
|
||||
"*".into()
|
||||
} else if last.as_ref() == Some(&entry.sheet) {
|
||||
"-".into()
|
||||
|
|
|
@ -40,7 +40,7 @@ impl<'a> Command<'a> for OutCommand {
|
|||
E: Write,
|
||||
{
|
||||
let end = args.at.unwrap_or(facts.now);
|
||||
let sheet = streams.db.current_sheet()?.unwrap_or_else(|| "default".into());
|
||||
let sheet = streams.db.current_sheet()?;
|
||||
|
||||
let (end, needs_warning) = time_or_warning(end, &streams.db)?;
|
||||
|
||||
|
|
|
@ -79,7 +79,7 @@ impl<'a> Command<'a> for ResumeCommand {
|
|||
O: Write,
|
||||
E: Write,
|
||||
{
|
||||
let current_sheet = streams.db.current_sheet()?.unwrap_or_else(|| "default".to_owned());
|
||||
let current_sheet = streams.db.current_sheet()?;
|
||||
|
||||
// First try to process using the given id
|
||||
match args.entry {
|
||||
|
|
|
@ -37,7 +37,7 @@ impl<'a> Command<'a> for SheetCommand {
|
|||
E: Write,
|
||||
{
|
||||
if let Some(sheet) = args.sheet {
|
||||
let current_sheet = streams.db.current_sheet()?.unwrap_or_else(|| "default".into());
|
||||
let current_sheet = streams.db.current_sheet()?;
|
||||
|
||||
// sheet given, switch to it
|
||||
let move_to = if sheet == "-" {
|
||||
|
@ -88,7 +88,7 @@ mod tests {
|
|||
|
||||
SheetCommand::handle(args, &mut streams, &facts).unwrap();
|
||||
|
||||
assert_eq!(streams.db.current_sheet().unwrap().unwrap(), "new_sheet");
|
||||
assert_eq!(streams.db.current_sheet().unwrap(), "new_sheet");
|
||||
assert_eq!(Ps(&String::from_utf8_lossy(&streams.out)), Ps("Switching to sheet 'new_sheet'\n"));
|
||||
assert_eq!(Ps(&String::from_utf8_lossy(&streams.err)), Ps(""));
|
||||
}
|
||||
|
@ -105,7 +105,7 @@ mod tests {
|
|||
|
||||
SheetCommand::handle(args, &mut streams, &facts).unwrap();
|
||||
|
||||
assert_eq!(streams.db.current_sheet().unwrap().unwrap(), "foo");
|
||||
assert_eq!(streams.db.current_sheet().unwrap(), "foo");
|
||||
assert_eq!(Ps(&String::from_utf8_lossy(&streams.out)), Ps("Already on sheet 'foo'\n"));
|
||||
assert_eq!(Ps(&String::from_utf8_lossy(&streams.err)), Ps(""));
|
||||
}
|
||||
|
@ -123,7 +123,7 @@ mod tests {
|
|||
|
||||
SheetCommand::handle(args, &mut streams, &facts).unwrap();
|
||||
|
||||
assert_eq!(streams.db.current_sheet().unwrap().unwrap(), "var");
|
||||
assert_eq!(streams.db.current_sheet().unwrap(), "var");
|
||||
assert_eq!(streams.db.last_sheet().unwrap().unwrap(), "foo");
|
||||
assert_eq!(Ps(&String::from_utf8_lossy(&streams.out)), Ps("Switching to sheet 'var'\n"));
|
||||
assert_eq!(Ps(&String::from_utf8_lossy(&streams.err)), Ps(""));
|
||||
|
|
|
@ -195,10 +195,10 @@ pub trait Database {
|
|||
}
|
||||
|
||||
// Meta queries
|
||||
fn current_sheet(&self) -> Result<Option<String>> {
|
||||
fn current_sheet(&self) -> Result<String> {
|
||||
let results = self.meta_query("select * from meta where key='current_sheet'", &[])?;
|
||||
|
||||
Ok(results.into_iter().next().map(|m| m.value))
|
||||
Ok(results.into_iter().next().map(|m| m.value).unwrap_or_else(|| "default".to_owned()))
|
||||
}
|
||||
|
||||
fn last_sheet(&self) -> Result<Option<String>> {
|
||||
|
|
Loading…
Reference in New Issue