mirror of
https://github.com/Xevion/paperless-mobile.git
synced 2025-12-09 10:08:00 -06:00
Updated onboarding, reformatted files, improved referenced documents view, updated error handling
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import 'package:paperless_mobile/core/type/json.dart';
|
||||
import 'package:paperless_mobile/core/type/types.dart';
|
||||
|
||||
class BulkEditAction {
|
||||
final List<int> documents;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// ignore_for_file: non_constant_identifier_names
|
||||
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:paperless_mobile/core/type/json.dart';
|
||||
import 'package:paperless_mobile/core/type/types.dart';
|
||||
import 'package:paperless_mobile/features/documents/model/query_parameters/id_query_parameter.dart';
|
||||
import 'package:paperless_mobile/features/documents/model/query_parameters/tags_query.dart';
|
||||
|
||||
|
||||
@@ -70,19 +70,23 @@ class DocumentFilter with EquatableMixin {
|
||||
|
||||
// Add/subtract one day in the following because paperless uses gt/lt not gte/lte
|
||||
if (addedDateAfter != null) {
|
||||
sb.write("&added__date__gt=${dateFormat.format(addedDateAfter!.subtract(_oneDay))}");
|
||||
sb.write(
|
||||
"&added__date__gt=${dateFormat.format(addedDateAfter!.subtract(_oneDay))}");
|
||||
}
|
||||
|
||||
if (addedDateBefore != null) {
|
||||
sb.write("&added__date__lt=${dateFormat.format(addedDateBefore!.add(_oneDay))}");
|
||||
sb.write(
|
||||
"&added__date__lt=${dateFormat.format(addedDateBefore!.add(_oneDay))}");
|
||||
}
|
||||
|
||||
if (createdDateAfter != null) {
|
||||
sb.write("&created__date__gt=${dateFormat.format(createdDateAfter!.subtract(_oneDay))}");
|
||||
sb.write(
|
||||
"&created__date__gt=${dateFormat.format(createdDateAfter!.subtract(_oneDay))}");
|
||||
}
|
||||
|
||||
if (createdDateBefore != null) {
|
||||
sb.write("&created__date__lt=${dateFormat.format(createdDateBefore!.add(_oneDay))}");
|
||||
sb.write(
|
||||
"&created__date__lt=${dateFormat.format(createdDateBefore!.add(_oneDay))}");
|
||||
}
|
||||
|
||||
return sb.toString();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:paperless_mobile/core/type/json.dart';
|
||||
import 'package:paperless_mobile/core/type/types.dart';
|
||||
import 'package:paperless_mobile/features/documents/model/document_filter.dart';
|
||||
import 'package:paperless_mobile/features/documents/model/query_parameters/correspondent_query.dart';
|
||||
import 'package:paperless_mobile/features/documents/model/query_parameters/document_type_query.dart';
|
||||
@@ -83,15 +83,20 @@ class FilterRule with EquatableMixin {
|
||||
: TagsQuery.fromIds([...filter.tags.ids, int.parse(value!)]),
|
||||
);
|
||||
case createdBeforeRule:
|
||||
return filter.copyWith(createdDateBefore: value == null ? null : DateTime.parse(value!));
|
||||
return filter.copyWith(
|
||||
createdDateBefore: value == null ? null : DateTime.parse(value!));
|
||||
case createdAfterRule:
|
||||
return filter.copyWith(createdDateAfter: value == null ? null : DateTime.parse(value!));
|
||||
return filter.copyWith(
|
||||
createdDateAfter: value == null ? null : DateTime.parse(value!));
|
||||
case addedBeforeRule:
|
||||
return filter.copyWith(addedDateBefore: value == null ? null : DateTime.parse(value!));
|
||||
return filter.copyWith(
|
||||
addedDateBefore: value == null ? null : DateTime.parse(value!));
|
||||
case addedAfterRule:
|
||||
return filter.copyWith(addedDateAfter: value == null ? null : DateTime.parse(value!));
|
||||
return filter.copyWith(
|
||||
addedDateAfter: value == null ? null : DateTime.parse(value!));
|
||||
case titleAndContentRule:
|
||||
return filter.copyWith(queryText: value, queryType: QueryType.titleAndContent);
|
||||
return filter.copyWith(
|
||||
queryText: value, queryType: QueryType.titleAndContent);
|
||||
case extendedRule:
|
||||
return filter.copyWith(queryText: value, queryType: QueryType.extended);
|
||||
//TODO: Add currently unused rules
|
||||
@@ -109,25 +114,29 @@ class FilterRule with EquatableMixin {
|
||||
filterRules.add(FilterRule(correspondentRule, null));
|
||||
}
|
||||
if (filter.correspondent.isSet) {
|
||||
filterRules.add(FilterRule(correspondentRule, filter.correspondent.id!.toString()));
|
||||
filterRules.add(
|
||||
FilterRule(correspondentRule, filter.correspondent.id!.toString()));
|
||||
}
|
||||
if (filter.documentType.onlyNotAssigned) {
|
||||
filterRules.add(FilterRule(documentTypeRule, null));
|
||||
}
|
||||
if (filter.documentType.isSet) {
|
||||
filterRules.add(FilterRule(documentTypeRule, filter.documentType.id!.toString()));
|
||||
filterRules.add(
|
||||
FilterRule(documentTypeRule, filter.documentType.id!.toString()));
|
||||
}
|
||||
if (filter.storagePath.onlyNotAssigned) {
|
||||
filterRules.add(FilterRule(storagePathRule, null));
|
||||
}
|
||||
if (filter.storagePath.isSet) {
|
||||
filterRules.add(FilterRule(storagePathRule, filter.storagePath.id!.toString()));
|
||||
filterRules
|
||||
.add(FilterRule(storagePathRule, filter.storagePath.id!.toString()));
|
||||
}
|
||||
if (filter.tags.onlyNotAssigned) {
|
||||
filterRules.add(FilterRule(tagRule, null));
|
||||
}
|
||||
if (filter.tags.isSet) {
|
||||
filterRules.addAll(filter.tags.ids.map((id) => FilterRule(tagRule, id.toString())));
|
||||
filterRules.addAll(
|
||||
filter.tags.ids.map((id) => FilterRule(tagRule, id.toString())));
|
||||
}
|
||||
|
||||
if (filter.queryText != null) {
|
||||
@@ -147,16 +156,20 @@ class FilterRule with EquatableMixin {
|
||||
}
|
||||
}
|
||||
if (filter.createdDateAfter != null) {
|
||||
filterRules.add(FilterRule(createdAfterRule, dateFormat.format(filter.createdDateAfter!)));
|
||||
filterRules.add(FilterRule(
|
||||
createdAfterRule, dateFormat.format(filter.createdDateAfter!)));
|
||||
}
|
||||
if (filter.createdDateBefore != null) {
|
||||
filterRules.add(FilterRule(createdBeforeRule, dateFormat.format(filter.createdDateBefore!)));
|
||||
filterRules.add(FilterRule(
|
||||
createdBeforeRule, dateFormat.format(filter.createdDateBefore!)));
|
||||
}
|
||||
if (filter.addedDateAfter != null) {
|
||||
filterRules.add(FilterRule(addedAfterRule, dateFormat.format(filter.addedDateAfter!)));
|
||||
filterRules.add(FilterRule(
|
||||
addedAfterRule, dateFormat.format(filter.addedDateAfter!)));
|
||||
}
|
||||
if (filter.addedDateBefore != null) {
|
||||
filterRules.add(FilterRule(addedBeforeRule, dateFormat.format(filter.addedDateBefore!)));
|
||||
filterRules.add(FilterRule(
|
||||
addedBeforeRule, dateFormat.format(filter.addedDateBefore!)));
|
||||
}
|
||||
return filterRules;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:paperless_mobile/core/type/json.dart';
|
||||
import 'package:paperless_mobile/core/type/types.dart';
|
||||
import 'package:paperless_mobile/features/documents/model/document.model.dart';
|
||||
|
||||
const pageRegex = r".*page=(\d+).*";
|
||||
@@ -45,7 +45,8 @@ class PagedSearchResult<T> extends Equatable {
|
||||
required this.results,
|
||||
});
|
||||
|
||||
factory PagedSearchResult.fromJson(Map<dynamic, dynamic> json, T Function(JSON) fromJson) {
|
||||
factory PagedSearchResult.fromJson(
|
||||
Map<dynamic, dynamic> json, T Function(JSON) fromJson) {
|
||||
return PagedSearchResult(
|
||||
count: json['count'],
|
||||
next: json['next'],
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:paperless_mobile/core/type/json.dart';
|
||||
import 'package:paperless_mobile/core/type/types.dart';
|
||||
import 'package:paperless_mobile/features/documents/model/document_filter.dart';
|
||||
import 'package:paperless_mobile/features/documents/model/filter_rule.model.dart';
|
||||
import 'package:paperless_mobile/features/documents/model/query_parameters/sort_field.dart';
|
||||
@@ -33,8 +33,14 @@ class SavedView with EquatableMixin {
|
||||
}
|
||||
|
||||
@override
|
||||
List<Object?> get props =>
|
||||
[name, showOnDashboard, showInSidebar, sortField, sortReverse, filterRules];
|
||||
List<Object?> get props => [
|
||||
name,
|
||||
showOnDashboard,
|
||||
showInSidebar,
|
||||
sortField,
|
||||
sortReverse,
|
||||
filterRules
|
||||
];
|
||||
|
||||
SavedView.fromJson(JSON json)
|
||||
: this(
|
||||
@@ -42,11 +48,14 @@ class SavedView with EquatableMixin {
|
||||
name: json['name'],
|
||||
showOnDashboard: json['show_on_dashboard'],
|
||||
showInSidebar: json['show_in_sidebar'],
|
||||
sortField:
|
||||
SortField.values.where((order) => order.queryString == json['sort_field']).first,
|
||||
sortField: SortField.values
|
||||
.where((order) => order.queryString == json['sort_field'])
|
||||
.first,
|
||||
sortReverse: json['sort_reverse'],
|
||||
filterRules:
|
||||
json['filter_rules'].cast<JSON>().map<FilterRule>(FilterRule.fromJson).toList(),
|
||||
filterRules: json['filter_rules']
|
||||
.cast<JSON>()
|
||||
.map<FilterRule>(FilterRule.fromJson)
|
||||
.toList(),
|
||||
);
|
||||
|
||||
DocumentFilter toDocumentFilter() {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import 'package:paperless_mobile/core/type/json.dart';
|
||||
import 'package:paperless_mobile/core/type/types.dart';
|
||||
import 'package:paperless_mobile/features/documents/model/document.model.dart';
|
||||
|
||||
class SimilarDocumentModel extends DocumentModel {
|
||||
|
||||
Reference in New Issue
Block a user