[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
SF.net SVN: ledger-smb:[4845] trunk
- Subject: SF.net SVN: ledger-smb:[4845] trunk
- From: ..hidden..
- Date: Wed, 06 Jun 2012 01:46:28 +0000
Revision: 4845
http://ledger-smb.svn.sourceforge.net/ledger-smb/?rev=4845&view=rev
Author: einhverfr
Date: 2012-06-06 01:46:27 +0000 (Wed, 06 Jun 2012)
Log Message:
-----------
Menu updates for history and transaction reports
minor fix for history report filter
Merging from branches/1.3
Modified Paths:
--------------
trunk/Changelog
trunk/doc/release_notes
trunk/sql/Pg-database.sql
trunk/sql/modules/Roles.sql
trunk/t/03-date-handling.t
Removed Paths:
-------------
trunk/UI/Contact/history_filter.html
Property Changed:
----------------
trunk/
trunk/LedgerSMB/Scripts/account.pm
trunk/LedgerSMB/Scripts/admin.pm
trunk/LedgerSMB/Scripts/contact.pm
trunk/LedgerSMB/Scripts/employee.pm
trunk/LedgerSMB/Scripts/file.pm
trunk/LedgerSMB/Scripts/journal.pm
trunk/LedgerSMB/Scripts/login.pm
trunk/LedgerSMB/Scripts/menu.pm
trunk/LedgerSMB/Scripts/payment.pm
trunk/LedgerSMB/Scripts/recon.pm
trunk/LedgerSMB/Scripts/setup.pm
trunk/LedgerSMB/Scripts/taxform.pm
trunk/sql/upgrade/1.2-1.3-manual.sql
Property changes on: trunk
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/1.3:3711-4820
+ /branches/1.3:3711-4844
Modified: trunk/Changelog
===================================================================
--- trunk/Changelog 2012-06-05 14:46:46 UTC (rev 4844)
+++ trunk/Changelog 2012-06-06 01:46:27 UTC (rev 4845)
@@ -66,8 +66,11 @@
* Fixed internal server error on requirements report (Chris T, h/t Nigel T)
* Fixed formatting issues with long dates and ISO db dates (Chris T 3525843)
* Removing XLS support which has been broken for some time (Chris T)
+* Fixes for slow menu performance on menu (Chris T)
+Chris T is Chris Travers
David M is David Mora
+Erik H is Erik Huelsmann
Nigel T is Nigel Titley
Robert C is Robert James Clay
Property changes on: trunk/LedgerSMB/Scripts/account.pm
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/1.3/LedgerSMB/Scripts/account.pm:3712-4820
/branches/1.3/scripts/account.pl:3711-4368
+ /branches/1.3/LedgerSMB/Scripts/account.pm:3712-4844
/branches/1.3/scripts/account.pl:3711-4368
Property changes on: trunk/LedgerSMB/Scripts/admin.pm
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/1.3/LedgerSMB/Scripts/admin.pm:3712-4820
/branches/1.3/scripts/admin.pl:3711-4678
+ /branches/1.3/LedgerSMB/Scripts/admin.pm:3712-4844
/branches/1.3/scripts/admin.pl:3711-4678
Property changes on: trunk/LedgerSMB/Scripts/contact.pm
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/1.3/LedgerSMB/Scripts/contact.pm:4783-4820
/branches/1.3/LedgerSMB/Scripts/customer.pm:3712-4782
/branches/1.3/scripts/customer.pl:4273-4287
+ /branches/1.3/LedgerSMB/Scripts/contact.pm:4783-4844
/branches/1.3/LedgerSMB/Scripts/customer.pm:3712-4782
/branches/1.3/scripts/customer.pl:4273-4287
Property changes on: trunk/LedgerSMB/Scripts/employee.pm
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/1.3/LedgerSMB/Scripts/employee.pm:3712-4820
/branches/1.3/scripts/employee.pl:3842-3843,4273-4287,4289-4310
+ /branches/1.3/LedgerSMB/Scripts/employee.pm:3712-4844
/branches/1.3/scripts/employee.pl:3842-3843,4273-4287,4289-4310
Property changes on: trunk/LedgerSMB/Scripts/file.pm
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/1.3/LedgerSMB/Scripts/file.pm:3711-4820
/branches/1.3/scripts/file.pl:3711-4138
+ /branches/1.3/LedgerSMB/Scripts/file.pm:3711-4844
/branches/1.3/scripts/file.pl:3711-4138
Property changes on: trunk/LedgerSMB/Scripts/journal.pm
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/1.3/LedgerSMB/Scripts/journal.pm:3712-4820
/branches/1.3/scripts/journal.pl:3711-4328
+ /branches/1.3/LedgerSMB/Scripts/journal.pm:3712-4844
/branches/1.3/scripts/journal.pl:3711-4328
Property changes on: trunk/LedgerSMB/Scripts/login.pm
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/1.3/LedgerSMB/Scripts/login.pm:3712-4820
/branches/1.3/scripts/login.pl:3711-4192
+ /branches/1.3/LedgerSMB/Scripts/login.pm:3712-4844
/branches/1.3/scripts/login.pl:3711-4192
Property changes on: trunk/LedgerSMB/Scripts/menu.pm
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/1.3/LedgerSMB/Scripts/menu.pm:3712-4820
/branches/1.3/scripts/menu.pl:3711-4192,4273-4287
+ /branches/1.3/LedgerSMB/Scripts/menu.pm:3712-4844
/branches/1.3/scripts/menu.pl:3711-4192,4273-4287
Property changes on: trunk/LedgerSMB/Scripts/payment.pm
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/1.3/LedgerSMB/Scripts/payment.pm:3712-4820
/branches/1.3/scripts/payment.pl:3711-4680
+ /branches/1.3/LedgerSMB/Scripts/payment.pm:3712-4844
/branches/1.3/scripts/payment.pl:3711-4680
Property changes on: trunk/LedgerSMB/Scripts/recon.pm
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/1.3/LedgerSMB/Scripts/recon.pm:3711-4820
/branches/1.3/scripts/recon.pl:4194-4271,4273-4287,4393-4438
+ /branches/1.3/LedgerSMB/Scripts/recon.pm:3711-4844
/branches/1.3/scripts/recon.pl:4194-4271,4273-4287,4393-4438
Property changes on: trunk/LedgerSMB/Scripts/setup.pm
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/1.3/LedgerSMB/Scripts/setup.pm:3712-4820
/branches/1.3/scripts/setup.pl:3711-4550
+ /branches/1.3/LedgerSMB/Scripts/setup.pm:3712-4844
/branches/1.3/scripts/setup.pl:3711-4550
Property changes on: trunk/LedgerSMB/Scripts/taxform.pm
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/1.3/LedgerSMB/Scripts/taxform.pm:3712-4820
/branches/1.3/scripts/taxform.pl:3711-4192,4273-4287
+ /branches/1.3/LedgerSMB/Scripts/taxform.pm:3712-4844
/branches/1.3/scripts/taxform.pl:3711-4192,4273-4287
Deleted: trunk/UI/Contact/history_filter.html
===================================================================
--- trunk/UI/Contact/history_filter.html 2012-06-05 14:46:46 UTC (rev 4844)
+++ trunk/UI/Contact/history_filter.html 2012-06-06 01:46:27 UTC (rev 4845)
@@ -1,396 +0,0 @@
-<?lsmb INCLUDE "ui-header.html"
- stylesheet = stylesheet
- # include_stylesheet = ['UI/Contact/history.css'] ?>
-<?lsmb PROCESS 'elements.html' ?>
-
-<body>
-
-<form method="post" action="<?lsmb script ?>">
-<?lsmb INCLUDE input element_data = {
- name = 'account_class',
- type = "hidden",
- value = account_class
-} ?>
-<?lsmb IF account_class == 1;
- title = text('Vendor History');
- ELSE;
- title = text('Customer History');
- END
-?>
-
-<table width=100%>
- <tr>
- <th class=listtop><?lsmb title ?></th>
- </tr>
- <tr height="5"></tr>
- <tr valign=top>
- <td>
- <table>
- <tr valign=top>
- <td>
- <table>
- <tr>
- <th align=right nowrap><?lsmb text('Company Name') ?></th>
- <td><?lsmb INCLUDE input element_data = {
- size = 32,
- name = "name",
- type = "text"
- } ?></td>
- </tr>
- <tr>
- <th align=right nowrap><?lsmb text('Contact Info') ?></th>
- <td><?lsmb INCLUDE input element_data = {
- size = 32
- name = "contact_info"
- type = "text"
- } ?></td>
- </tr>
- <th align=right nowrap>Salesperson</th>
- <td><?lsmb INCLUDE input element_data = {
- size = 32
- name = "salesperson"
- type = "text"
- } ?></td>
-
- </tr> <!--
- <tr>
- <th align=right nowrap>Notes</th>
- <td colspan=3><textarea name=notes rows=3 cols=32></textarea></td>
- </tr> -->
- </table>
- </td>
-
- <td>
- <table>
- <tr>
- <?lsmb IF account_class == 1;
- number_desc = text('Vendor Number'); #'
- ELSE;
- number_desc = text('Customer Number'); #'
- END;
- ?>
- <th align=right nowrap><?lsmb number_desc ?></th>
- <td><?lsmb INCLUDE input element_data = {
- name = "meta_number",
- size = "32",
- type = "text"
- } ?></td>
- </tr>
- <tr>
- <th align=right nowrap><?lsmb text('Address') ?></th>
- <td><?lsmb INCLUDE input element_data = {
- name = "address_line",
- size = "32",
- type = "text"
- } ?> </td>
- </tr>
- <tr>
- <th align=right nowrap><?lsmb text('City') ?></th>
- <td><?lsmb INCLUDE input element_data = {
- name = "city",
- size = "32",
- type = "text"
- } ?></td>
- </tr>
- <tr>
- <th align=right nowrap><?lsmb text('State/Province') ?></th>
- <td><?lsmb INCLUDE input element_data = {
- name = "state",
- size = "32",
- type = "text"
- } ?></td>
- </tr>
- <tr>
- <th align=right nowrap><?lsmb text('Zip/Postal Code') ?></th>
- <td><?lsmb INCLUDE input element_data = {
- name = "zip",
- size = "10",
- type = "text"
- } ?></td>
- </tr>
- <tr>
- <th align=right nowrap><?lsmb text('Country') ?></th>
- <td><?lsmb country_list.unshift({});
- INCLUDE select element_data = {
- name = "country_id",
- text_attr = 'name',
- value_attr = 'id',
- options = country_list,
- } ?></td>
- </tr>
- <tr>
- <th align=right nowrap><?lsmb text('Startdate') ?></th>
- <td><?lsmb INCLUDE input element_data = {
- name = "startdate_from",
- size = "11",
- type = "text",
- class = "date",
- title = user.dateformat,
- label = text('From')
- };
- INCLUDE input element_data = {
- name = "startdate_to",
- size = "11",
- type = "text",
- class = "date",
- title = user.dateformat,
- label = text('To')
- } ?></td>
-
- </table>
- </td>
- </tr>
- </table>
- </td>
- </tr>
-
- <tr>
- <td>
- <table>
-
-
-
- <tr>
- <td></td>
- <td>
- <table>
- <tr>
- <td>
- <table>
- <tr>
- <td>
- <?lsmb INCLUDE input element_data = {
- checked = 'CHECKED',
- name = 'type',
- type = 'radio',
- class = 'radio',
- value = 'i'
- label = text('Invoices'),
- } ?></td>
- </tr>
- <tr>
- <?lsmb INCLUDE input element_data = {
- name = 'type',
- type = 'radio',
- class = 'radio',
- value = 'o'
- label = text('Orders'),
- } ?></td>
- </tr>
- <tr>
- <tr>
- <?lsmb INCLUDE input element_data = {
- name = 'type',
- type = 'radio',
- class = 'radio',
- value = 'q'
- label = text('Quotations'),
- } ?></td>
-
- </tr>
- </table>
- </td>
- <td>
- <table>
- <tr>
- <th><?lsmb text('From') ?></th>
- <td> <?lsmb
- INCLUDE input element_data = {
- name = "from_date",
- size = "11",
- type = "text",
- class = "date",
- title = user.dateformat,
- label = text('To')
- } ?></td>
- <th><?lsmb text('To') ?></th>
- <td><?lsmb
- INCLUDE input element_data = {
- name = "to_date",
- size = "11",
- type = "text",
- class = "date",
- title = user.dateformat,
- label = text('To')
- } ?></td>
- </tr>
- <tr>
- <td></td>
- <td colspan="3">
- <?lsmb
- INCLUDE input element_data = {
- type = 'checkbox',
- name = 'inc_open',
- value = '1',
- label = text('Open'),
- class = 'checkbox',
- checked = 'CHECKED'
- };
- INCLUDE input element_data = {
- type = 'checkbox',
- name = 'inc_closed',
- value = '1',
- label = text('Closed'),
- class = 'checkbox',
- checked = 'CHECKED'
- }; ?>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- </table>
- </td>
- </tr>
-
-
- <tr>
- <th align="right" nowrap><?lsmb Text('Include in Report') ?></th>
- <td>
- <table>
- <tr>
- <td><?lsmb
- INCLUDE input element_data= {
- label = text('Summary'),
- name = 'report_type'
- type = 'radio',
- value = 'summary',
- class = 'radio',
- checked = 'CHECKED'
- } ?></td>
- <td><?lsmb
- INCLUDE input element_data= {
- label = text('Detail'),
- name = 'report_type',
- type = 'radio',
- value = 'detail',
- class = 'radio',
- } ?></td>
- </tr>
- <tr>
- <td><?lsmb
- INCLUDE input element_data = {
- type = 'checkbox',
- name = 'l_partnumber',
- value = '1',
- label = text('Part Number'), #'
- class = 'checkbox',
- checked = 'CHECKED'
- }; ?>
- </td>
- <td><?lsmb
- INCLUDE input element_data = {
- type = 'checkbox',
- name = 'l_description',
- value = '1',
- label = text('Description'),
- class = 'checkbox',
- checked = 'CHECKED'
- }; ?>
- </td>
- <td><?lsmb
- INCLUDE input element_data = {
- type = 'checkbox',
- name = 'l_sellprice',
- value = '1',
- label = text('Sell Price'), #'
- class = 'checkbox',
- }; ?>
- </td>
- <td><?lsmb
- INCLUDE input element_data = {
- type = 'checkbox',
- name = 'l_curr',
- value = '1',
- label = text('Currency'),
- class = 'checkbox',
- }; ?>
- </td>
- </tr>
- <tr>
- <td><?lsmb
- INCLUDE input element_data = {
- type = 'checkbox',
- name = 'l_qty',
- value = '1',
- label = text('Qty'),
- class = 'checkbox',
- checked = 'CHECKED'
- }; ?>
- </td>
- <td><?lsmb
- INCLUDE input element_data = {
- type = 'checkbox',
- name = 'l_unit',
- value = '1',
- label = text('Unit'),
- class = 'checkbox',
- checked = 'CHECKED'
- }; ?>
- </td>
- <td><?lsmb
- INCLUDE input element_data = {
- type = 'checkbox',
- name = 'l_discount',
- value = '1',
- label = text('Discount'),
- class = 'checkbox',
- }; ?>
- </td>
- <tr>
- </tr>
- <td><?lsmb
- INCLUDE input element_data = {
- type = 'checkbox',
- name = 'l_deliverydate',
- value = '1',
- label = text('Delivery Date'), #'
- class = 'checkbox',
- }; ?>
- </td>
- <td><?lsmb
- INCLUDE input element_data = {
- type = 'checkbox',
- name = 'l_projectnumber',
- value = '1',
- label = text('Project Number'), #'
- class = 'checkbox',
- }; ?>
- </td>
- <td><?lsmb
- INCLUDE input element_data = {
- type = 'checkbox',
- name = 'l_serialnumber',
- value = '1',
- label = text('Serial Number'), #'
- class = 'checkbox',
- }; ?>
- </td>
- </tr>
- </table>
- </td>
- </tr>
-
-
- </table>
- </td>
- </tr>
-
- <tr>
- <td><hr size=3 noshade></td>
- </tr>
-</table>
-
-
-<br>
-<?lsmb INCLUDE button element_data = {
- text = text('Continue'),
- value = 'display_history',
- type = 'submit',
- class = 'submit',
- name = 'action'
-} ?>
-</form>
-
-</body>
-</html>
Modified: trunk/doc/release_notes
===================================================================
--- trunk/doc/release_notes 2012-06-05 14:46:46 UTC (rev 4844)
+++ trunk/doc/release_notes 2012-06-06 01:46:27 UTC (rev 4845)
@@ -1,7 +1,7 @@
RELEASE NOTES
LedgerSMB 1.3
-Latest Revision: 1.3.17, May 18, 2012.
+Latest Revision: 1.3.18, May 18, 2012.
1: Welcome to LedgerSMB
Modified: trunk/sql/Pg-database.sql
===================================================================
--- trunk/sql/Pg-database.sql 2012-06-05 14:46:46 UTC (rev 4844)
+++ trunk/sql/Pg-database.sql 2012-06-06 01:46:27 UTC (rev 4845)
@@ -2542,21 +2542,19 @@
0 Top-level \N 0
20 Invoice Vouchers 249 2
2 Add Transaction 1 1
-5 Transactions 4 1
-6 Outstanding 4 2
7 AR Aging 4 3
9 Taxable Sales 4 4
10 Non-Taxable 4 5
39 Invoice Vouchers 250 2
-16 Budgets 0 18
+5 Search 1 7
17 Add Budget 16 1
18 Search 16 2
22 Add Transaction 21 1
-25 Transactions 24 1
-26 Outstanding 24 2
27 AP Aging 24 3
28 Taxable 24 4
29 Non-taxable 24 5
+25 Search 21 7
+16 Budgets 73 8
36 Receipt 35 1
38 Payment 35 3
223 Use Overpayment 35 4
@@ -2684,6 +2682,10 @@
19 Contacts 0 1
246 Import Chart 73 7
136 GIFI 128 7
+4 Reports 1 9
+249 Vouchers 1 8
+24 Reports 21 9
+250 Vouchers 21 8
200 Vouchers 35 5
40 Transfer 35 6
41 Reports 35 8
@@ -2737,10 +2739,6 @@
140 List GIFI 136 5
247 Import GIFI 136 6
248 Import 153 3
-249 Vouchers 1 7
-4 Reports 1 8
-250 Vouchers 21 7
-24 Reports 21 8
198 AR Voucher 249 1
199 AP Voucher 250 1
252 Add Budget 251 1
@@ -2823,7 +2821,6 @@
--
COPY menu_attribute (node_id, attribute, value, id) FROM stdin;
-26 outstanding 1 584
205 menu 1 574
206 module vouchers.pl 575
206 action search_batch 576
@@ -2834,13 +2831,6 @@
3 module is.pl 5
3 type invoice 6
4 menu 1 7
-5 module ar.pl 8
-5 action search 9
-5 nextsub transactions 10
-6 module ar.pl 12
-6 action search 13
-6 nextsub transactions 14
-6 outstanding 1 18
9 module rp.pl 21
9 action report 22
9 report tax_collected 23
@@ -2848,8 +2838,6 @@
10 action report 25
10 report nontaxable_sales 26
12 action add 29
-15 db customer 37
-15 action history 33
16 menu 1 38
17 module budgets.pl 39
17 action new_budget 40
@@ -2862,21 +2850,12 @@
23 type invoice 55
23 module ir.pl 54
24 menu 1 56
-25 action search 58
-25 nextsub transactions 59
-25 module ap.pl 57
-26 action search 61
-26 nextsub transactions 62
-26 module ap.pl 60
28 module rp.pl 66
28 action report 67
28 report tax_collected 68
29 module rp.pl 69
29 action report 70
29 report nontaxable_purchases 71
-34 module vendor.pl 80
-34 action history 81
-34 db vendor 82
35 menu 1 83
36 module payment.pl 84
36 action payment 85
@@ -2968,6 +2947,17 @@
14 action start_report 36
14 module reports.pl 32
14 module_name gl 27
+15 action start_report 33
+15 report_name purchase_history 37
+34 action start_report 81
+34 report_name purchase_history 82
+34 module reports.pl 80
+5 module reports.pl 8
+5 action start_report 9
+5 report_name search_purchases 10
+25 report_name search_purchases 59
+25 action start_report 58
+25 module reports.pl 57
72 action search 168
72 type request_quotation 167
73 menu 1 169
@@ -3329,7 +3319,6 @@
210 action search 585
210 module drafts.pl 586
199 batch_type ap 561
-15 module customer.pl 35
45 module recon.pl 106
45 action new_report 107
44 module recon.pl 108
@@ -3437,6 +3426,11 @@
39 module vouchers.pl 75
39 action create_batch 76
39 batch_type vendor_invoice 77
+15 module reports.pl 35
+34 entity_class 1 20
+15 entity_class 2 19
+5 entity_class 2 12
+25 entity_class 1 13
\.
Modified: trunk/sql/modules/Roles.sql
===================================================================
--- trunk/sql/modules/Roles.sql 2012-06-05 14:46:46 UTC (rev 4844)
+++ trunk/sql/modules/Roles.sql 2012-06-06 01:46:27 UTC (rev 4845)
@@ -326,8 +326,6 @@
INSERT INTO menu_acl (node_id, acl_type, role_name)
values (5, 'allow', 'lsmb_<?lsmb dbname ?>__ar_transaction_list');
INSERT INTO menu_acl (node_id, acl_type, role_name)
-values (6, 'allow', 'lsmb_<?lsmb dbname ?>__ar_transaction_list');
-INSERT INTO menu_acl (node_id, acl_type, role_name)
values (7, 'allow', 'lsmb_<?lsmb dbname ?>__ar_transaction_list');
INSERT INTO menu_acl (node_id, acl_type, role_name)
values (9, 'allow', 'lsmb_<?lsmb dbname ?>__ar_transaction_list');
@@ -528,8 +526,6 @@
INSERT INTO menu_acl (node_id, acl_type, role_name)
values (25, 'allow', 'lsmb_<?lsmb dbname ?>__ap_transaction_list');
INSERT INTO menu_acl (node_id, acl_type, role_name)
-values (26, 'allow', 'lsmb_<?lsmb dbname ?>__ap_transaction_list');
-INSERT INTO menu_acl (node_id, acl_type, role_name)
values (27, 'allow', 'lsmb_<?lsmb dbname ?>__ap_transaction_list');
INSERT INTO menu_acl (node_id, acl_type, role_name)
values (28, 'allow', 'lsmb_<?lsmb dbname ?>__ap_transaction_list');
Property changes on: trunk/sql/upgrade/1.2-1.3-manual.sql
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/1.3/sql/upgrade/1.2-1.3-manual.sql:3712-4820
/branches/1.3/sql/upgrade/1.2-1.3.sql:3711-3851
/trunk/sql/upgrade/1.2-1.3.sql:858-3710
+ /branches/1.3/sql/upgrade/1.2-1.3-manual.sql:3712-4844
/branches/1.3/sql/upgrade/1.2-1.3.sql:3711-3851
/trunk/sql/upgrade/1.2-1.3.sql:858-3710
Modified: trunk/t/03-date-handling.t
===================================================================
--- trunk/t/03-date-handling.t 2012-06-05 14:46:46 UTC (rev 4844)
+++ trunk/t/03-date-handling.t 2012-06-06 01:46:27 UTC (rev 4845)
@@ -183,8 +183,8 @@
# (2 + 23), 25 - 12, 13 - 1, 12
foreach my $format (0 .. $#formats) {
$form->{db_dateformat} = $formats[$format][0];
- my $fmt = $formats[$format][0];
- my $sep = $formats[$format][1];
+ my $fmt = 'yyyy-mm-dd';
+ my $sep = '-';
my $yearcount = $formats[$format][2];
my $results = $fmt;
$results =~ s/(yy)?yy/1999/;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.