rmehta
October 30, 2018, 12:16pm
1
Dear Foundation members,
Thanks for all the discussions we had at the conference, like we all observed, that the role of the foundation is not really clear. We have $45,000 in the foundation account, here is what I am proposing:
We spend $30k on grants to projects (between $1k to $5k) that anyone in the community can propose. The foundation, will have a committee to review and approve all proposals and give grants.
We spend $15k on travel for core developer to events/code sprints. This is open to any local chapter and they can apply to the foundation for funds (upto $2k per chapter).
Let me know your thoughts, I think this would be the best use of the funds and will also promote the goals of the foundation.
Note: This goes against my earlier proposal of hiring developers under the foundation, as at this point, it would be too much for anyone in Frappe Tech to take voluntary leadership of these developers.
Tagging @Foundation
20 Likes
ā¦Still going thru the youtube recording of the Con18ā¦Congrats to the organisersā¦
Nice to hear there is $45K in the pettyā¦
|Some years back we had a voting system for new developmentsā¦now with a muchā¦much larger comminity we could consider to give this a shot again.
Who will code the selected projects? Frappe I guess/hope.
rgds Robert
1 Like
rmehta
October 30, 2018, 12:30pm
4
Thanks @becht_robert . This is not for Frappe Tech, but for any community developer / company who wants to contribute and needs a grant to fund it. Any team can propose to build / maintain feature X and the foundation can choose to fund it based on the proposal.
4 Likes
It is a practical proposal for this year.
If there are more funds in the future:
Can the foundation also consider funding a fixed percentage(5% or 10%) to upstream projects that may need funds ?
3 Likes
I second the thought of using funds to promote and arrange code sprints. We need more of those in near future. This is a quickest way to get things we need to get added in the core.
Grant based projects may not have the required turnaround time.
4 Likes
I have a long list of improvement proposal list, mainly for the frappe framework. Even though I created some PR and merged.
frappe:develop
ā szuyxy:support_paste_multi_recs_in_childtable
opened 03:02AM - 10 Sep 18 UTC
How it works
1. Prepare the source data in Excel or text editor with each columā¦ n separated by tab,
case 1. first line as column header, both field name and label supported
case 2. no column header, the data will directly map to the visible columns
2. Drag to select the records , and copy (ctrl + C)
3. Make sure the child table is in edit mode(if needed click the Add Row button), place the cursor to the target input field of the child table, paste (ctrl + V)
![copypaste](https://user-images.githubusercontent.com/12823863/45279472-d0f44980-b503-11e8-842c-121869d300c1.gif)
Please read the [Pull Request Checklist](https://github.com/frappe/erpnext/wiki/Pull-Request-Checklist) to ensure you have everything that is needed to get your contribution merged.
frappe:develop
ā szuyxy:global_search_support_and
opened 12:48PM - 05 Jul 18 UTC
Motivation:
The current global search is a very powerful and killer feature whiā¦ ch enable universally searching the whole ERP system by simple key words, it is more a kind of internal Google. so far so good, per my observation and study the forum discussion about global search, I identified an important missing feature, that is it only support search by single key word or using as default an OR logic to combine all the user input search text separated by space. for example if we have similar items with names as
apple ipad, apple iphone, sumsung ipad, sumsung phone etc, there is no way to pin point the specific item, because using either single key word or multi key words separated by space will result more results than expected, the other similar cases is that some times it is needed to search orders by the item names included in it or by all the tags assigned to it, the current global search can not handle this important use case.
![global_search_and](https://user-images.githubusercontent.com/12823863/42354406-3244e166-80f9-11e8-8e9e-f98f883db280.gif)
Solution by this pull request
the user can use the AND operator (&) in the search text, e.g 'apple & ipad', then in the backend, two separate search into the global search help table will be executed, one for each search term, here apple and ipad respectively, then the 2 search results will be checked, only these records which exist in both search result (the AND logic) will be finally returned to the user(front end). it is quite straight forward. for more details, check the code.
support the user to use and operator (&) in the search text, to search target document by combined multi search term(key words separated by &, thus we can search purchase order by vendor name, the items purchased all together!
Please read the [Pull Request Checklist](https://github.com/frappe/erpnext/wiki/Pull-Request-Checklist) to ensure you have everything that is needed to get your contribution merged.
frappe:develop
ā szufisher:master
opened 12:46PM - 20 Jun 18 UTC
Pull-Request
- [v ] Have you followed the guidelines in our Contributing docuā¦ ment?
- [ v] Have you checked to ensure there aren't other open [Pull Requests](../pulls) for the same update/change?
- [v] Have you lint your code locally prior to submission?
- [ v] Have you successfully run tests with your changes locally?
- [v] Does your commit message have an explanation for your changes and why you'd like us to include them?
- [ ] Docs have been added / updated
- [ ] Tests for the changes have been added (for bug fixes / features)
- [ ] Did you modify the existing test cases? If yes, why?
---
What type of a PR is this?
- [ ] Changes to Existing Features
- [ v] New Feature Submissions
- [ ] Bug Fix
- [ ] Breaking Change
---
- Motivation and Context (What existing problem does the pull request solve):
refer to this forum discussion post https://discuss.erpnext.com/t/new-feature-proposal-enable-search-user-tags-in-link-field-and-global-search/37596/2
- Related Issue:
- Screenshots (if applicable, remember, a picture tells a thousand words):
**Please don't be intimidated by the long list of options you've to fill. Try to fill out as much as you can. Remember, the more the information the easier it is for us to test and get your pull request merged** :grin:
frappe:develop
ā szuyxy:create_all_dropship_po_for_so
opened 04:10PM - 27 Jul 18 UTC
Refer to issue https://github.com/frappe/erpnext/issues/15031
**Business caseā¦ **
- Sales order with multi items assigned to different suppliers
**As Is**
- by clicking the create purchase order custom menu item, there is popup window to force user select one supplier, system auto fetch all the data for the new drop ship purchase order and route to the new purchase order screen, waiting for user to further modify the order and click SAVE to create the final draft PO, for each supplier, the above mentioned steps need to be repeated
- if draft purchase orders already created for the supplier, click the create purchase order menu item and select the supplier again, system will create the purchase order again without any error message, only when trying to submit the purchase order, there is limit crossed error!
**To Be**
- Allow user to leave the supplier field empty, system creates multi draft drop ship purchase orders for all suppliers assigned to sales order items
- only the supplier by which the corresponding drop ship purchase orders(draft and submitted) not yet created will be available in the supplier drop down list
![leave supplier empty](https://user-images.githubusercontent.com/12823863/43332974-37ae31f2-91fc-11e8-9dcd-be80ca2ff93d.PNG)
Fig1: Allow user leave the supplier field empty
![dropshiporders](https://user-images.githubusercontent.com/12823863/43332994-3d6fb8ea-91fc-11e8-9afc-6cf3d83f8841.PNG)
Fig2: after multi purchase orders created, route to the list instead of the form view
Please read the pull request checklist to make sure your changes are merged: https://github.com/frappe/erpnext/wiki/Pull-Request-Checklist
( converted to another PR, still open)
frappe:develop
ā szuyxy:scan_barcode
opened 08:38AM - 06 Sep 18 UTC
How It Works
- Maintain barcode field in Item doctype
<img width="685" alt="ā¦ barcode item master" src="https://user-images.githubusercontent.com/12823863/45146102-bf096280-b1f4-11e8-89c4-295e3ec084a0.PNG">
- Scan barcode in target docs in form view on New / change mode
<img width="587" alt="material request barcode scan" src="https://user-images.githubusercontent.com/12823863/45146118-c7fa3400-b1f4-11e8-9db5-ea8bc2d4adbf.png">
target docs should have
- field items, field type as Table type
- items child table have fields: item_code and qty
A new scan barcode field above the items table will be added, scan the item barcode label,( ensure the carriage RETURN is attached as suffix in the scanner setting), or manual key in barcode then press ENTER), the program will auto fetch the item based on barcode, when first time scanning the material, it auto creates a new record at top of the items table with item_code and qty as 1, otherwise, the existing record will be changed by adding 1 to existing qty. no impact to opening existing submitted doc with non editable status.
Currently this new feature will be automatically enabled for the following standard doctypes ,
- Material Request
- Purchase Order
- Sales Order
- Purchase Receipt
- Delivery Note
- Stock Entry
- Purchase Invoice
- Sales Invoice
discussion thread
https://discuss.erpnext.com/t/new-feature-proposal-barcode-scan-to-create-update-records-in-child-table-useful-for-stock-movement-and-orders/33695/5
Please read the pull request checklist to make sure your changes are merged: https://github.com/frappe/erpnext/wiki/Pull-Request-Checklist
I realized that single handed on new PR for all tasks : idea, spec, coding, testing, documentation is very challenging and time consuming, most of the times even result in TOTAL halt.
I would like to seek this opportunity to have my ideas/ new proposals supported by the foundation fund.
3 potential projects below
Currently, the core function frappe.get_list / frappe.get_all is a high level API to wrap raw SQL call to the database, which is extensively used by the list view and reports, there is already special logic to directly allow filtering by child table field, e.g filtering sales order by item_code field in items child table, we can use filtering arguments like this: filters={āitem_codeā:āxxxā}, it is also possible to fetch child table fields by either use the argument with_childnames or directly adā¦
Dear szufisher,
I think benchmark the SAP authorization concept is a great idea. Iām the SAP basis admin and been familiar with the SAP authorization very well.
Iām not the developer, so I canāt give much input on the coding. But anything on sap authorization may give some help.
frappe:develop
ā szufisher:develop
opened 02:17PM - 30 Jan 18 UTC
![image](https://user-images.githubusercontent.com/12823863/35571096-1f4ebee6-06ā¦ 0c-11e8-986d-0a3dfba3055a.png)
**Features added**
1. Create new/update existing document or execute python code when document created/saved/submitted/value changed, or specified method called
or scheduled time event:before or after certain days based on specified date field reached,
2. Execute python code per javascript calling convention
**Use Cases:**
1. Auto assign responsible person for new or updated task/order/issue etc
2. Auto create error log/to do /issue when certain documents created/changed under specific conditions
3. do customized validation check for custom doctypes: using frappe.throw(_('validation failure!'))
4. do customized handling:auto filling certain fields for custom doctypes
5. do customized complex server side logic for custom button: get items from , create subsequent documents, jump to related document etc
6. do required simple or complex customization on SaaS, which currently not possible!
7. do what you want per your creative idea!
**How to use it**
1. define custom server action
Action Type: with following options
Update Record: when event triggered, the doc(target document type per the link field, the current doc as default) will be updated,
to be updated fields are defined under the field mapping child table
Create New Record:when event triggered, a new doc of target document type will be created, fields are defined under the field mapping child table
Execute Python Code: when even triggered , the Python code will be called
Python Code Called By JS: the python code will be called via frappe.call from javascript, normally bound to custom button in form view.
Document Type: the document type by which to trigger the action,
Trigger On: when to trigger, with following options
New
Save
Submit
Cancel
Days After
Days Before
Value Change
Method
Custom
Trigger Method: when selected trigger on as Method, specify the method name here
Value Changed: when selected trigger on as Value change, specify the field (value change)
Reference Date : when selected trigger on as Days Before or Days After, specify the referenced date field
Days Before Or After: when selected trigger on as Days Before or Days After, specify the number of days
Condition: python expression, only the evaluated result is True, the action will be called
Code: the python code to be exectuted, when action type is Execute Python Code or Python Code Called By Client
Target Document Type: when action type is Update Record or Create New Record, default as the document type
Link Field: when action type is Update Record and target document type is not same as document type, the link field from the document type
Field Mapping
Field: the target field of the target document type
Type: Value, Formula
Value: if type is value, the field value, if type is formula, the python expression, just like the condition field
tips for python code and python expression
local context variable: doc, frappe, json,_ is available
internal function is not supported, thus def, return is not allowed, for passing input parameter and return result, use frappe.local.form_dict instead
special key custom_server_action_out is used for returning value from python code, for more details with samples refer to the relevant post in discuss.erpnext.com
How it works in the background technically
1. Added 2 new doctypes, referred to exsting email alert feature, instead of updating one field with fixed value only,added a child table to allow assign
multi fields for new / update document, enhanced field value assignment to support python expression, also added the possibility to execute python code for
more complicated cases
1.1 custom server action
1.2 custom server action field
2. added one new version of the safe_eval (based on Odoo), whitelisted opcodes are defined, thus to safeguard the security of the customized python code
3. Updated model.document.py, added hooks for the custom server action , like existing web hooks.
4. added 2 handlers in frappe/custom/doctype/custom_server_aciton.__init__ run_custom_server_action and run_custom_server_action_by_js.
8 Likes
rmehta
October 31, 2018, 6:20am
11
@szufisher This is the exact reason for the grant! Letās wait for a few more days for a response on this and maybe we can finalize the process next week or so.
@rmehta ,
I am ready to create new PR for user permission refactor, when will the foundation fund can be applied? or can you help to evaluate whether it is right time to accept my proposal and start the PR now? if so, can you help to assign core team members to work on this new PR ?
thanks.
rmehta
December 3, 2018, 4:25am
13
@szufisher We have started accepting proposals informally, we are working on a formal plan too.
Unfortunately we donāt have any available resource from our team, if you are working on this proposal, the foundation would be open to fund you if there is an agreement on the design / specs.
As I have already finished the coding and relevant test cases, also tested on my local instance, it is OK to start the PR now?
rmehta
December 3, 2018, 6:57am
15
Sure, please start the PR!