Fix invalid categories finally!
This commit is contained in:
parent
fd171b8aa7
commit
ececb7439a
1
ltx_flutter/.direnv/flake-profile
Symbolic link
1
ltx_flutter/.direnv/flake-profile
Symbolic link
@ -0,0 +1 @@
|
||||
flake-profile-2-link
|
||||
1
ltx_flutter/.direnv/flake-profile-1-link
Symbolic link
1
ltx_flutter/.direnv/flake-profile-1-link
Symbolic link
@ -0,0 +1 @@
|
||||
/nix/store/548c9rk983kzvkfiicqmkslqmd7s1ldg-nix-shell-env
|
||||
1
ltx_flutter/.direnv/flake-profile-2-link
Symbolic link
1
ltx_flutter/.direnv/flake-profile-2-link
Symbolic link
@ -0,0 +1 @@
|
||||
/nix/store/rmm84806g3pgv1nc8wvi7g72ivh6axsi-nix-shell-env
|
||||
@ -56,7 +56,7 @@ class Category {
|
||||
}
|
||||
|
||||
bool hasParent() {
|
||||
return parent == number ? false : true;
|
||||
return parent != number;
|
||||
}
|
||||
|
||||
double leftPadding() {
|
||||
@ -99,10 +99,17 @@ class CategoriesAPI extends ChangeNotifier {
|
||||
if (!_ready) {
|
||||
return false;
|
||||
}
|
||||
try{
|
||||
return Category(_categories.singleWhere((e) {
|
||||
return e.data['number'] == double.parse(n.toString());
|
||||
}));
|
||||
}
|
||||
catch(e){
|
||||
return Category(_categories.singleWhere((e) {
|
||||
return e.data['number'] == -9;
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
init() {
|
||||
client.setEndpoint(APPWRITE_URL).setProject(APPWRITE_PROJECT_ID);
|
||||
|
||||
@ -71,6 +71,7 @@ class DatabaseAPI extends ChangeNotifier {
|
||||
notifyListeners();
|
||||
// _entries.add(entry);
|
||||
// sortByDate(_entries);
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -81,10 +82,14 @@ class DatabaseAPI extends ChangeNotifier {
|
||||
var referenceDate = DateTime.parse("2023-01-01");
|
||||
|
||||
final date = DateTime.parse(dateISO);
|
||||
return date.difference(referenceDate).inDays + 1;
|
||||
|
||||
int _total = date.difference(referenceDate).inDays + 1;
|
||||
return _total;
|
||||
}
|
||||
|
||||
getAll() async {
|
||||
print("Loading entries");
|
||||
|
||||
String paginationQuery = Query.offset(0);
|
||||
int max = total();
|
||||
|
||||
@ -102,10 +107,27 @@ class DatabaseAPI extends ChangeNotifier {
|
||||
paginationQuery: paginationQuery,
|
||||
);
|
||||
|
||||
if(newEntries.isEmpty){
|
||||
// This only happens if we were expecting more
|
||||
// (i.e., _entries.length < max),
|
||||
// but getEntries didn't return anything
|
||||
// (i.e., an entry doesn't exist).
|
||||
// So, let's create it.
|
||||
//
|
||||
// BAD CODE: THIS ASSUMES IT NEEDS TO BE TODAY
|
||||
// This will eventually break.
|
||||
//
|
||||
|
||||
Document new_today_entry = await getOne(date: formatter.format(DateTime.now()));
|
||||
|
||||
newEntries.add(new_today_entry);
|
||||
}
|
||||
|
||||
_entries.addAll(newEntries);
|
||||
notifyListeners();
|
||||
}
|
||||
_ready = true;
|
||||
print("Got ${_entries.length} entries");
|
||||
}
|
||||
|
||||
getOne({required String date}) async {
|
||||
@ -126,11 +148,14 @@ class DatabaseAPI extends ChangeNotifier {
|
||||
print("No entry in database; creating $date");
|
||||
Document newEntry = await addEntry(date: date);
|
||||
_entries.add(newEntry);
|
||||
notifyListeners();
|
||||
return(newEntry);
|
||||
}
|
||||
else{
|
||||
_entries.add(response.first);
|
||||
notifyListeners();
|
||||
return(response.first);
|
||||
}
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -31,7 +31,7 @@ class _CategoriesPageState extends State<CategoriesPage> {
|
||||
),
|
||||
body: Consumer<CategoriesAPI>(builder: (context, categories, child) {
|
||||
return ListView.builder(
|
||||
itemCount: categories.total + 1,
|
||||
itemCount: categories.total,
|
||||
itemBuilder: (context, i) {
|
||||
if (i < categories.total) {
|
||||
Category category = categories.get(i);
|
||||
@ -42,15 +42,17 @@ class _CategoriesPageState extends State<CategoriesPage> {
|
||||
height: 0,
|
||||
thickness: 2,
|
||||
),
|
||||
category.number == -1
|
||||
category.number < 0
|
||||
? SizedBox.shrink()
|
||||
: CategoryRow(category: category),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
return CategoryRow(category: category);
|
||||
}
|
||||
else{
|
||||
print("Huh?");
|
||||
}
|
||||
return null;
|
||||
},
|
||||
);
|
||||
|
||||
@ -47,29 +47,34 @@ class _DayViewState extends State<DayView> {
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
void getDayEntry() async{
|
||||
List<Document> entries = database.entries;
|
||||
String formattedDate = formatDate(
|
||||
dateISO: _date.toIso8601String(),
|
||||
format: "yyyy-MM-dd",
|
||||
);
|
||||
|
||||
try {
|
||||
dayEntry = entries.singleWhere((element) => element.$id == formattedDate);
|
||||
String date = formatDate(
|
||||
format: "LLL d", dateISO: dayEntry?.data['date'].toString());
|
||||
print("Got entry for $date");
|
||||
} catch (e) {
|
||||
database.getOne(date: formattedDate).then((value) {
|
||||
dayEntry = value;
|
||||
});
|
||||
dayEntry = entries.last;
|
||||
print("Got entry for ${entries.last.$id}");
|
||||
}
|
||||
// print(entries.length);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
getDayEntry();
|
||||
|
||||
setState(() {
|
||||
if (dayEntry != null) {
|
||||
comments = dayEntry?.data["comments"];
|
||||
String? newComment = dayEntry?.data["comments"];
|
||||
if(newComment == null){
|
||||
newComment = "";
|
||||
}
|
||||
comments = newComment;
|
||||
mood = dayEntry?.data["mood"];
|
||||
}
|
||||
});
|
||||
@ -512,7 +517,7 @@ class _HourFormFieldState extends State<HourFormField> {
|
||||
}
|
||||
});
|
||||
if (widget.category != null) {
|
||||
catNum = widget.category!.number.toString();
|
||||
catNum = widget.dayEntry!.data['hours'][widget.index].toString();
|
||||
fgColor = widget.category!.foregroundColor;
|
||||
catName = widget.category!.name;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user