2
0
mirror of https://github.com/inventree/inventree-app.git synced 2025-04-28 05:26:47 +00:00

Code cleanup

This commit is contained in:
Oliver 2021-07-15 11:27:19 +10:00
parent 2a5bb4631b
commit d2ce3fadf1
19 changed files with 36 additions and 81 deletions

View File

@ -14,10 +14,8 @@ import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:flutter_cache_manager/flutter_cache_manager.dart'; import 'package:flutter_cache_manager/flutter_cache_manager.dart';
import 'package:InvenTree/widget/dialogs.dart'; import 'package:InvenTree/widget/dialogs.dart';
import 'package:InvenTree/l10.dart'; import 'package:InvenTree/l10.dart';
import 'package:InvenTree/inventree/sentry.dart';
import 'package:http/http.dart' as http; import 'package:http/http.dart' as http;
import 'package:one_context/one_context.dart';
/** /**
* Custom FileService for caching network images * Custom FileService for caching network images
@ -26,7 +24,7 @@ import 'package:one_context/one_context.dart';
*/ */
class InvenTreeFileService extends FileService { class InvenTreeFileService extends FileService {
HttpClient? _client = null; HttpClient? _client;
InvenTreeFileService({HttpClient? client, bool strictHttps = false}) { InvenTreeFileService({HttpClient? client, bool strictHttps = false}) {
_client = client ?? HttpClient(); _client = client ?? HttpClient();
@ -113,7 +111,7 @@ class InvenTreeAPI {
String makeUrl(String endpoint) => _makeUrl(endpoint); String makeUrl(String endpoint) => _makeUrl(endpoint);
UserProfile? profile = null; UserProfile? profile;
Map<String, dynamic> roles = {}; Map<String, dynamic> roles = {};
@ -187,8 +185,6 @@ class InvenTreeAPI {
if (profile == null) return false; if (profile == null) return false;
var ctx = OneContext().context;
String address = profile?.server ?? ""; String address = profile?.server ?? "";
String username = profile?.username ?? ""; String username = profile?.username ?? "";
String password = profile?.password ?? ""; String password = profile?.password ?? "";
@ -451,7 +447,7 @@ class InvenTreeAPI {
} on SocketException catch (error) { } on SocketException catch (error) {
showServerError(L10().connectionRefused, error.toString()); showServerError(L10().connectionRefused, error.toString());
return null; return null;
} on TimeoutException catch (error) { } on TimeoutException {
showTimeoutError(); showTimeoutError();
return null; return null;
} catch (error, stackTrace) { } catch (error, stackTrace) {
@ -468,10 +464,10 @@ class InvenTreeAPI {
var data = json.encode(_body); var data = json.encode(_body);
// Set headers // Set headers
request.headers.set('Accept', 'application/json'); request.headers.set(HttpHeaders.acceptHeader, 'application/json');
request.headers.set('Content-type', 'application/json'); request.headers.set(HttpHeaders.contentTypeHeader, 'application/json');
request.headers.set('Accept-Language', Intl.getCurrentLocale()); request.headers.set(HttpHeaders.acceptLanguageHeader, Intl.getCurrentLocale());
request.headers.set('Content-Length', data.length.toString()); request.headers.set(HttpHeaders.contentLengthHeader, data.length.toString());
request.headers.set(HttpHeaders.authorizationHeader, _authorizationHeader()); request.headers.set(HttpHeaders.authorizationHeader, _authorizationHeader());
request.add(utf8.encode(data)); request.add(utf8.encode(data));
@ -486,7 +482,7 @@ class InvenTreeAPI {
error.toString() error.toString()
); );
return null; return null;
} on TimeoutException catch (error) { } on TimeoutException {
showTimeoutError(); showTimeoutError();
return null; return null;
} catch (error, stackTrace) { } catch (error, stackTrace) {
@ -594,16 +590,16 @@ class InvenTreeAPI {
try { try {
request = await client.openUrl("OPTIONS", uri).timeout(Duration(seconds: 10)); request = await client.openUrl("OPTIONS", uri).timeout(Duration(seconds: 10));
request.headers.set('Accept', 'application/json'); request.headers.set(HttpHeaders.acceptHeader, 'application/json');
request.headers.set('Accept-Language', Intl.getCurrentLocale()); request.headers.set(HttpHeaders.acceptLanguageHeader, Intl.getCurrentLocale());
request.headers.set('Content-type', 'application/json'); request.headers.set(HttpHeaders.contentTypeHeader, 'application/json');
request.headers.set(HttpHeaders.authorizationHeader, _authorizationHeader()); request.headers.set(HttpHeaders.authorizationHeader, _authorizationHeader());
response = await request.close().timeout(Duration(seconds: 10)); response = await request.close().timeout(Duration(seconds: 10));
} on SocketException catch (error) { } on SocketException catch (error) {
showServerError(L10().connectionRefused, error.toString()); showServerError(L10().connectionRefused, error.toString());
return null; return null;
} on TimeoutException catch (error) { } on TimeoutException {
showTimeoutError(); showTimeoutError();
return null; return null;
} catch (error, stackTrace) { } catch (error, stackTrace) {
@ -647,7 +643,7 @@ class InvenTreeAPI {
error.toString() error.toString()
); );
return null; return null;
} on TimeoutException catch (error) { } on TimeoutException {
showTimeoutError(); showTimeoutError();
return null; return null;
} catch (error, stackTrace) { } catch (error, stackTrace) {
@ -666,9 +662,10 @@ class InvenTreeAPI {
// Set headers // Set headers
// Ref: https://stackoverflow.com/questions/59713003/body-not-sending-using-map-in-flutter // Ref: https://stackoverflow.com/questions/59713003/body-not-sending-using-map-in-flutter
request.headers.set('Accept', 'application/json'); request.headers.set(HttpHeaders.acceptHeader, 'application/json');
request.headers.set('Content-type', 'application/json'); request.headers.set(HttpHeaders.contentTypeHeader, 'application/json');
request.headers.set('Content-Length', data.length.toString()); request.headers.set(HttpHeaders.acceptLanguageHeader, Intl.getCurrentLocale());
request.headers.set(HttpHeaders.contentLengthHeader, data.length.toString());
request.headers.set(HttpHeaders.authorizationHeader, _authorizationHeader()); request.headers.set(HttpHeaders.authorizationHeader, _authorizationHeader());
// Add JSON data to the request // Add JSON data to the request
@ -684,7 +681,7 @@ class InvenTreeAPI {
error.toString() error.toString()
); );
return null; return null;
} on TimeoutException catch (error) { } on TimeoutException {
showTimeoutError(); showTimeoutError();
return null; return null;
} catch (error, stackTrace) { } catch (error, stackTrace) {
@ -795,13 +792,13 @@ class InvenTreeAPI {
try { try {
// Open a connection // Open a connection
request = await client.getUrl(uri).timeout(Duration(seconds: 10)); request = await client.getUrl(uri).timeout(Duration(seconds: 10));
} on TimeoutException catch (error) { } on TimeoutException {
showTimeoutError(); showTimeoutError();
return null; return null;
} on SocketException catch (error) { } on SocketException catch (error) {
showServerError(L10().connectionRefused, error.toString()); showServerError(L10().connectionRefused, error.toString());
return null; return null;
} on Exception catch (error) { } on FormatException {
showServerError(L10().invalidHost, L10().invalidHostDetails); showServerError(L10().invalidHost, L10().invalidHostDetails);
return null; return null;
} catch (error, stackTrace) { } catch (error, stackTrace) {
@ -811,15 +808,16 @@ class InvenTreeAPI {
} }
// Set connection headers // Set connection headers
request.headers.set(HttpHeaders.acceptHeader, 'application/json');
request.headers.set(HttpHeaders.contentTypeHeader, 'application/json'); request.headers.set(HttpHeaders.contentTypeHeader, 'application/json');
request.headers.set(HttpHeaders.acceptLanguageHeader, Intl.getCurrentLocale());
request.headers.set(HttpHeaders.authorizationHeader, _authorizationHeader()); request.headers.set(HttpHeaders.authorizationHeader, _authorizationHeader());
try { try {
HttpClientResponse response = await request.close().timeout(Duration(seconds: 10)); HttpClientResponse response = await request.close().timeout(Duration(seconds: 10));
return response; return response;
} on TimeoutException catch (error) { } on TimeoutException {
showTimeoutError(); showTimeoutError();
return null; return null;
} on SocketException catch (error) { } on SocketException catch (error) {

View File

@ -246,8 +246,6 @@ class BarcodeScanHandler extends BarcodeHandler {
success: false, success: false,
onAction: () { onAction: () {
var _ctx = OneContext().context;
OneContext().showDialog( OneContext().showDialog(
builder: (BuildContext context) => SimpleDialog( builder: (BuildContext context) => SimpleDialog(
title: Text(L10().unknownResponse), title: Text(L10().unknownResponse),

View File

@ -1,18 +1,10 @@
import 'dart:async'; import 'dart:async';
import 'dart:io';
import 'package:InvenTree/api.dart'; import 'package:InvenTree/api.dart';
import 'package:InvenTree/widget/dialogs.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:one_context/one_context.dart';
import 'package:url_launcher/url_launcher.dart'; import 'package:url_launcher/url_launcher.dart';
// import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'dart:convert';
import 'package:path/path.dart' as path; import 'package:path/path.dart' as path;
import 'package:http/http.dart' as http;
// Paginated response object // Paginated response object

View File

@ -1,14 +1,10 @@
import 'dart:convert';
import 'package:InvenTree/api.dart'; import 'package:InvenTree/api.dart';
import 'package:InvenTree/inventree/stock.dart'; import 'package:InvenTree/inventree/stock.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:InvenTree/l10.dart';
import 'model.dart'; import 'model.dart';
import 'dart:io'; import 'dart:io';
import 'package:path/path.dart' as path;
import 'package:http/http.dart' as http; import 'package:http/http.dart' as http;
class InvenTreePartCategory extends InvenTreeModel { class InvenTreePartCategory extends InvenTreeModel {
@ -42,7 +38,7 @@ class InvenTreePartCategory extends InvenTreeModel {
String p = psplit.join("/"); String p = psplit.join("/");
if (p.isEmpty) { if (p.isEmpty) {
p = "Top level part category"; p = L10().partCategoryTopLevel;
} }
return p; return p;

View File

@ -35,8 +35,7 @@ class InvenTreeStockItemTestResult extends InvenTreeModel {
InvenTreeStockItemTestResult() : super(); InvenTreeStockItemTestResult() : super();
InvenTreeStockItemTestResult.fromJson(Map<String, dynamic> json) : super.fromJson(json) { InvenTreeStockItemTestResult.fromJson(Map<String, dynamic> json) : super.fromJson(json);
}
@override @override
InvenTreeStockItemTestResult createFromJson(Map<String, dynamic> json) { InvenTreeStockItemTestResult createFromJson(Map<String, dynamic> json) {
@ -388,9 +387,8 @@ class InvenTreeStockItem extends InvenTreeModel {
} }
String get locationPathString { String get locationPathString {
String path = '';
if (locationId == -1 || !jsondata.containsKey('location_detail')) return 'No location specified'; if (locationId == -1 || !jsondata.containsKey('location_detail')) return L10().locationNotSet;
return jsondata['location_detail']['pathstring'] ?? ''; return jsondata['location_detail']['pathstring'] ?? '';
} }

View File

@ -17,8 +17,7 @@ class _InvenTreeAppSettingsState extends State<InvenTreeAppSettingsWidget> {
final GlobalKey<_InvenTreeAppSettingsState> _settingsKey = GlobalKey<_InvenTreeAppSettingsState>(); final GlobalKey<_InvenTreeAppSettingsState> _settingsKey = GlobalKey<_InvenTreeAppSettingsState>();
_InvenTreeAppSettingsState() { _InvenTreeAppSettingsState();
}
bool barcodeSounds = true; bool barcodeSounds = true;
bool serverSounds = true; bool serverSounds = true;

View File

@ -8,7 +8,6 @@ import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:InvenTree/l10.dart'; import 'package:InvenTree/l10.dart';
import '../api.dart'; import '../api.dart';
import '../preferences.dart';
import '../user_profile.dart'; import '../user_profile.dart';
class InvenTreeLoginSettingsWidget extends StatefulWidget { class InvenTreeLoginSettingsWidget extends StatefulWidget {
@ -22,8 +21,6 @@ class _InvenTreeLoginSettingsState extends State<InvenTreeLoginSettingsWidget> {
final GlobalKey<_InvenTreeLoginSettingsState> _loginKey = GlobalKey<_InvenTreeLoginSettingsState>(); final GlobalKey<_InvenTreeLoginSettingsState> _loginKey = GlobalKey<_InvenTreeLoginSettingsState>();
final GlobalKey<FormState> _formKey = new GlobalKey<FormState>();
final GlobalKey<FormState> _addProfileKey = new GlobalKey<FormState>(); final GlobalKey<FormState> _addProfileKey = new GlobalKey<FormState>();
List<UserProfile> profiles = []; List<UserProfile> profiles = [];
@ -250,7 +247,7 @@ class _InvenTreeLoginSettingsState extends State<InvenTreeLoginSettingsWidget> {
List<Widget> children = []; List<Widget> children = [];
if (profiles != null && profiles.length > 0) { if (profiles.length > 0) {
for (int idx = 0; idx < profiles.length; idx++) { for (int idx = 0; idx < profiles.length; idx++) {
UserProfile profile = profiles[idx]; UserProfile profile = profiles[idx];

View File

@ -1,7 +1,6 @@
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_markdown/flutter_markdown.dart'; import 'package:flutter_markdown/flutter_markdown.dart';
import 'package:markdown/markdown.dart' as md;
import 'package:InvenTree/l10.dart'; import 'package:InvenTree/l10.dart';

View File

@ -116,8 +116,6 @@ class UserProfileDBManager {
} }
Future deleteProfile(UserProfile profile) async { Future deleteProfile(UserProfile profile) async {
final finder = Finder(filter: Filter.equals("name", profile.name));
await store.record(profile.key).delete(await _db); await store.record(profile.key).delete(await _db);
print("Deleted user profile <${profile.key}> - '${profile.name}'"); print("Deleted user profile <${profile.key}> - '${profile.name}'");
} }
@ -133,8 +131,6 @@ class UserProfileDBManager {
final profiles = await store.find(await _db); final profiles = await store.find(await _db);
List<UserProfile> profileList = [];
for (int idx = 0; idx < profiles.length; idx++) { for (int idx = 0; idx < profiles.length; idx++) {
if (profiles[idx].key is int && profiles[idx].key == selected) { if (profiles[idx].key is int && profiles[idx].key == selected) {

View File

@ -126,7 +126,7 @@ class _CategoryDisplayState extends RefreshableState<CategoryDisplayWidget> {
); );
} }
_CategoryDisplayState(this.category) {} _CategoryDisplayState(this.category);
// The local InvenTreePartCategory object // The local InvenTreePartCategory object
final InvenTreePartCategory? category; final InvenTreePartCategory? category;

View File

@ -42,7 +42,7 @@ class _CompanyDetailState extends RefreshableState<CompanyDetailWidget> {
void _saveCompany(Map<String, String> values) async { void _saveCompany(Map<String, String> values) async {
Navigator.of(context).pop(); Navigator.of(context).pop();
var response = await company.update(values: values); await company.update(values: values);
refresh(); refresh();
} }
@ -57,13 +57,13 @@ class _CompanyDetailState extends RefreshableState<CompanyDetailWidget> {
showFormDialog(L10().edit, showFormDialog(L10().edit,
key: _editCompanyKey, key: _editCompanyKey,
actions: <Widget>[ actions: <Widget>[
FlatButton( TextButton(
child: Text(L10().cancel), child: Text(L10().cancel),
onPressed: () { onPressed: () {
Navigator.pop(context); Navigator.pop(context);
}, },
), ),
FlatButton( TextButton(
child: Text(L10().save), child: Text(L10().save),
onPressed: () { onPressed: () {
if (_editCompanyKey.currentState!.validate()) { if (_editCompanyKey.currentState!.validate()) {

View File

@ -5,9 +5,7 @@ import 'package:flutter/material.dart';
import 'package:InvenTree/api.dart'; import 'package:InvenTree/api.dart';
import 'package:InvenTree/inventree/company.dart'; import 'package:InvenTree/inventree/company.dart';
import 'package:InvenTree/widget/drawer.dart';
import 'package:InvenTree/widget/refreshable_state.dart'; import 'package:InvenTree/widget/refreshable_state.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
abstract class CompanyListWidget extends StatefulWidget { abstract class CompanyListWidget extends StatefulWidget {
@ -50,7 +48,7 @@ class _CompanyListState extends RefreshableState<CompanyListWidget> {
Map<String, String> _filters = Map<String, String>(); Map<String, String> _filters = Map<String, String>();
_CompanyListState(this._title, this._filters) {} _CompanyListState(this._title, this._filters);
@override @override
Future<void> onBuild(BuildContext context) async { Future<void> onBuild(BuildContext context) async {

View File

@ -163,10 +163,6 @@ Future<void> showStatusCodeError(int status, {int expected = 200}) async {
} }
Future<void> showTimeoutError() async { Future<void> showTimeoutError() async {
// Use OneContext as "sometimes" context is null here?
var ctx = OneContext().context;
await showServerError(L10().timeout, L10().noResponse); await showServerError(L10().timeout, L10().noResponse);
} }
@ -174,8 +170,6 @@ void showFormDialog(String title, {String? acceptText, String? cancelText, Globa
BuildContext? dialogContext; BuildContext? dialogContext;
var ctx = OneContext().context;
String _accept = acceptText ?? L10().save; String _accept = acceptText ?? L10().save;
String _cancel = cancelText ?? L10().cancel; String _cancel = cancelText ?? L10().cancel;

View File

@ -1,10 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:image_picker/image_picker.dart'; import 'package:image_picker/image_picker.dart';
import 'package:one_context/one_context.dart';
import 'package:InvenTree/l10.dart'; import 'package:InvenTree/l10.dart';
import 'dart:async'; import 'dart:async';

View File

@ -1,5 +1,4 @@
import 'package:InvenTree/user_profile.dart'; import 'package:InvenTree/user_profile.dart';
import 'package:InvenTree/widget/starred_parts.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';

View File

@ -127,7 +127,7 @@ class _LocationDisplayState extends RefreshableState<LocationDisplayWidget> {
); );
} }
_LocationDisplayState(this.location) {} _LocationDisplayState(this.location);
List<InvenTreeStockLocation> _sublocations = []; List<InvenTreeStockLocation> _sublocations = [];

View File

@ -2,8 +2,6 @@ import 'package:InvenTree/widget/drawer.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart'; import 'package:flutter/widgets.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:InvenTree/widget/drawer.dart';
abstract class RefreshableState<T extends StatefulWidget> extends State<T> { abstract class RefreshableState<T extends StatefulWidget> extends State<T> {

View File

@ -48,8 +48,7 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
final _moveStockKey = GlobalKey<FormState>(); final _moveStockKey = GlobalKey<FormState>();
final _editStockKey = GlobalKey<FormState>(); final _editStockKey = GlobalKey<FormState>();
_StockItemDisplayState(this.item) { _StockItemDisplayState(this.item);
}
@override @override
List<Widget> getAppBarActions(BuildContext context) { List<Widget> getAppBarActions(BuildContext context) {

View File

@ -5,11 +5,8 @@
// gestures. You can also use WidgetTester to find child widgets in the widget // gestures. You can also use WidgetTester to find child widgets in the widget
// tree, read text, and verify that the values of widget properties are correct. // tree, read text, and verify that the values of widget properties are correct.
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart'; import 'package:flutter_test/flutter_test.dart';
//import 'package:inventree_app/main.dart';
void main() { void main() {
testWidgets('Counter increments smoke test', (WidgetTester tester) async { testWidgets('Counter increments smoke test', (WidgetTester tester) async {
}); });