Skip to content

Instantly share code, notes, and snippets.

View kururu-abdo's full-sized avatar
💻
coding

kururu kururu-abdo

💻
coding
View GitHub Profile
final productResults = await _odooClient.callKw({
'model': 'product.template', // Selecting from 'product.template' model
'method': 'search_read',
'args': [],
'kwargs': {
'domain': [
['sale_ok', '=', true], // WHERE sale_ok = true
['list_price', '>', 100.0], // AND list_price > 100.0
'|', // OR (applies to the next two conditions)
['type', '=', 'product'], // type = 'product'
await _odooClient.callKw({
model: 'stock.picking',
'method': 'search_read',
'args': [],
'kwargs': {
fields: ['pick_state','id', 'name', 'partner_id', 'date', 'sale_id','invoice_number', 'app_driver'],
},
});
import 'dart:convert';
import 'dart:developer';
import 'package:http/http.dart' as http;
import 'package:shared_preferences/shared_preferences.dart';
class OdooRpcClient {
final String baseUrl;
final String db;
String? _sessionId; // To store the session ID
final String _authPath = '/web/session/authenticate';
// pubspec.yaml
// Add these dependencies:
// dependencies:
// flutter:
// sdk: flutter
// dio: ^5.4.0 # Or the latest version
// provider: ^6.0.5 # Or the latest version
// json_annotation: ^4.8.1
// cached_network_image: ^3.3.1
// shared_preferences: ^2.2.2
@kururu-abdo
kururu-abdo / login_page.dart
Created May 8, 2025 17:56
Login Page Witn Flutter using CustomPainter
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@kururu-abdo
kururu-abdo / painter_line_chart.dart
Created December 4, 2024 15:25
painter_line_chart.dart
import 'package:flutter/material.dart';
class ChartData {
final double x;
final double y;
ChartData(this.x, this.y);
}
void main() {
runApp(const MyApp());
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:integration_test/integration_test.dart';
import 'package:your_app/main.dart'; // Update with the path to your main app file
void main() {
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
testWidgets('Login flow test', (WidgetTester tester) async {
@override
Path getClip(Size size) {
double radius = 50;
Path path = Path()
..lineTo(size.width - radius, 0)
..arcTo(
Rect.fromPoints(
Offset(size.width - radius, 0), Offset(size.width, radius)), // Rect