revant / erpnext_feature_board Goto Github PK
View Code? Open in Web Editor NEWFeature board for ERPNext
License: Other
Feature board for ERPNext
License: Other
open for discussion.
Thoughts?
Cron to delete merged improvements
States of improvement:
Ready: Set when Improvement is added
Build Queued
process_build_queue_improvements
Build Queue Failed
process_build_queue_improvements
sets "Build Queue" Improvements to "Build Queue Failed" if calling the create_build_image_job throws exceptionBuilding
process_build_queue_improvements
sets "Build Queue" Improvements to "Building" if create_build_image_job response is successful.Build Complete
process_building_improvements
sets "Building" Improvements to "Build Complete" if get_job_status()
returns job is complete.Build Error
process_building_improvements
sets "Building" Improvements to "Build Error" if get_job_status()
returns exception.Release Queued
process_build_complete_improvements
sets "Build Complete" Improvements to "Release Queued" if create_helm_release()
returns success.Release Queued Failed
process_build_complete_improvements
sets "Build Complete" Improvements to "Release Queued Failed" if create_helm_release()
returns exception.Release Error
process_release_queued_improvements
sets "Release Queued" to "Release Error" if get_helm_release_status()
returns exceptionReady
process_release_queued_improvements
sets "Release Queued" to "Ready" if get_helm_release_status()
returns exceptionUpgrade Queued
Upgrade Queued Failed
process_upgrade_queued_improvements
sets "Upgrade Queued" to "Upgrade Queue Failed" if create_build_image_job()
returns exceptionRebuilding
process_upgrade_queued_improvements
sets "Upgrade Queued" to "Rebuilding" if create_build_image_job()
returns successRebuild Error
process_rebuilding_improvements
sets "Rebuilding" to "Rebuild Error" if get_job_status()
returns failureRebuild Complete
process_rebuilding_improvements
sets "Rebuilding" to "Rebuild Complete" if get_job_status()
returns successUpgrading
process_rebuild_complete_improvements
sets "Rebuild Complete" to "Upgrading" if update_helm_release()
returns successUpgrading Failed
process_rebuild_complete_improvements
sets "Rebuild Complete" to "Upgrading Failed" if update_helm_release()
returns errorUpgrade Error
process_upgrading_improvements
sets "Upgrading" to "Upgrade Error" if get_helm_release_status()
returns failureReady
process_upgrading_improvements
sets "Upgrading" to "Ready" if get_helm_release_status()
returns successDelete Queued
Delete Queue Failed
process_delete_queued_improvements
sets "Delete Queued" to "Delete Queue Failed" if tear_down_improvement_site_resources
returns error[doc.remove]
process_delete_queued_improvements
deletes "Delete Queued" if tear_down_improvement_site_resources
returns errorOn error options:
List of cron functions to add
Web view (also allowed for Guest users)
Webhooks
"Moderation Request" Types
Moderators can:
Add moderator on invite
Rename "Moderation Request" to something more meaningful.
--context=git://github.com/frappe/frappe_docker.git
--context-sub-path=images/worker
--build-arg=FRAPPE_REPO=https://github.com/frappe/frappe
--build-arg=ERPNEXT_REPO=https://github.com/frappe/erpnext
--build-arg=BENCH_REPO=https://github.com/frappe/bench
--build-arg=FRAPPE_VERSION=v13.25.0
--build-arg=ERPNEXT_VERSION=v13.25.1
--build-arg=PYTHON_VERSION=3.9
--target=erpnext
The Github PAT is not necessary for public repositories
There's a function that already handles this in the code. Just need to wire it up with cron in hooks.
Check if it is error with setup or error with PR
Error Log
Traceback (most recent call last):
File "/home/revant/frappe-bench/apps/frappe/frappe/model/base_document.py", line 363, in db_insert
), list(d.values()))
File "/home/revant/frappe-bench/apps/frappe/frappe/database/database.py", line 146, in sql
self._cursor.execute(query, values)
File "/home/revant/frappe-bench/env/lib/python3.7/site-packages/pymysql/cursors.py", line 148, in execute
result = self._query(query)
File "/home/revant/frappe-bench/env/lib/python3.7/site-packages/pymysql/cursors.py", line 310, in _query
conn.query(q)
File "/home/revant/frappe-bench/env/lib/python3.7/site-packages/pymysql/connections.py", line 548, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
File "/home/revant/frappe-bench/env/lib/python3.7/site-packages/pymysql/connections.py", line 775, in _read_query_result
result.read()
File "/home/revant/frappe-bench/env/lib/python3.7/site-packages/pymysql/connections.py", line 1156, in read
first_packet = self.connection._read_packet()
File "/home/revant/frappe-bench/env/lib/python3.7/site-packages/pymysql/connections.py", line 725, in _read_packet
packet.raise_for_error()
File "/home/revant/frappe-bench/env/lib/python3.7/site-packages/pymysql/protocol.py", line 221, in raise_for_error
err.raise_mysql_exception(self._data)
File "/home/revant/frappe-bench/env/lib/python3.7/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.IntegrityError: (1062, "Duplicate entry 'feat-tax-deduction-against-advance-payments' for key 'PRIMARY'")
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/revant/frappe-bench/apps/frappe/frappe/utils/background_jobs.py", line 100, in execute_job
method(**kwargs)
File "/home/revant/frappe-bench/apps/erpnext_feature_board/erpnext_feature_board/erpnext_feature_board/doctype/github_repository/github_repository.py", line 66, in create_repository_improvements
update_improvement(pull, repository)
File "/home/revant/frappe-bench/apps/erpnext_feature_board/erpnext_feature_board/erpnext_feature_board/doctype/github_repository/github_repository.py", line 87, in update_improvement
improvement_doc.save()
File "/home/revant/frappe-bench/apps/frappe/frappe/model/document.py", line 284, in save
return self._save(*args, **kwargs)
File "/home/revant/frappe-bench/apps/frappe/frappe/model/document.py", line 306, in _save
self.insert()
File "/home/revant/frappe-bench/apps/frappe/frappe/model/document.py", line 252, in insert
raise e
File "/home/revant/frappe-bench/apps/frappe/frappe/model/document.py", line 249, in insert
self.db_insert()
File "/home/revant/frappe-bench/apps/frappe/frappe/model/base_document.py", line 376, in db_insert
raise frappe.DuplicateEntryError(self.doctype, self.name, e)
frappe.exceptions.DuplicateEntryError: ('Improvement', 'feat-tax-deduction-against-advance-payments', IntegrityError(1062, "Duplicate entry 'feat-tax-deduction-against-advance-payments' for key 'PRIMARY'"))
self.validate()
Migrating board.castlecraft.co.in
Updating DocTypes for frappe : [========================================] 100%
Updating DocTypes for erpnext_feature_board: [========================================] 100%
Updating Dashboard for frappe
Updating Dashboard for erpnext_feature_board
Building search index for board.castlecraft.co.in
Retrieving Routes : [== ] 5%
Traceback (most recent call last):
File "/home/frappe/frappe-bench/commands/migrate.py", line 51, in <module>
main()
File "/home/frappe/frappe-bench/commands/migrate.py", line 44, in main
migrate_sites()
File "/home/frappe/frappe-bench/commands/migrate.py", line 35, in migrate_sites
migrate()
File "/home/frappe/frappe-bench/apps/frappe/frappe/migrate.py", line 95, in migrate
build_index_for_all_routes()
File "/home/frappe/frappe-bench/apps/frappe/frappe/search/website_search.py", line 128, in build_index_for_all_routes
return ws.build()
File "/home/frappe/frappe-bench/apps/frappe/frappe/search/full_text_search.py", line 37, in build
self.build_index()
File "/home/frappe/frappe-bench/apps/frappe/frappe/search/full_text_search.py", line 96, in build_index
writer = ix.writer()
File "/home/frappe/frappe-bench/env/lib/python3.7/site-packages/whoosh/index.py", line 464, in writer
return SegmentWriter(self, **kwargs)
File "/home/frappe/frappe-bench/env/lib/python3.7/site-packages/whoosh/writing.py", line 515, in __init__
raise LockError
whoosh.index.LockError
Seems to be during migration from containers.
keeping it in event hook will cause the .save() to fail even in case of discourse site network errors
Referring this PR https://github.com/frappe/erpnext/pull/24603
it is going into version-13-hotfix instead of develop branch.
This information is needed to base the build on the branch given here.
for now using it from json.loads(doc.raw_data).get("base", {}).get("ref")
import requests
import json
s = requests.Session()
s.post(f"{i.site_url}/api/method/login", data=json.dumps({"usr":"Administator","pwd":f"{i.site_admin_password}"}))
user = {"email":"[email protected]", "first_name":"User", "new_password":"hello@123", "send_welcome_email":0, "roles":[{"role":"System Manager"}]}
s.post(f"{i.site_url}/api/resource/User", data=json.dumps(user)).json()
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.