After building a very stable and strong 0.16 branch, we have decided to revisit the database section and make some strong modifications. The main issue we had with the database was the lack of consistency between plural and singular values. As a last ditch effort, we have decided to single all plurals. This currently makes the 0.17 very unstable and we are still finding issues and fixing problems.
Currently we are a head of our schedule (for once), and we are hoping to do a full bug test session soon. We want the 0.18 branch to be even stronger than the 0.16 branch.
Sneaky release for 0.16.4 on github. We are moving forward early to our development branch. We are hoping to have the following new features implemented;
- Projects and Tasks show links to opportunities
- Quotes should show which projects they are linked to
- Email the quotes from the system
- User Profiles
- Look at what MYSQL Routines can do for NearBeach
- Deploy group permissions for Quotes
- Have a diagnositc testing page
More blogs to come
- Bug292 – Completed Requirements do not close
- Bug296 – Resolving/Closing project does not disable all functions within the project
- Bug369 – Bugzilla connect does not work when connecting to a large bugzilla instance
- Bug379 – Dashboard Widgets Have Search
- Bug398 – Incorrect website address not identified
- Bug400 – Incorrect customer email address
- Bug401 – Menu fails to contract.
The release can be found at – https://github.com/robotichead/NearBeach/releases/tag/alpha-0.16.2
I stole this quote from reddit user tdammers
There are only two difficult problems in programming: naming things, cache expiry, and off-by-one errors.
I will admit that I have made a mistake with my naming convention, and that mistake is plurals.
Naming convention is important for the obvious reasons;
- Remembering variable/field names later
In my case I did not keep a standard with the naming convention when it came to plurals. Some database tables/fields are with a suffix ‘s’ and other are not. This makes it extremely hard to remember what I have done and wastes time as I have to look up the table/field.
My solution – remove all the plurals and make all tables/fields singular. A statement that is too easy to say and most likely a nightmare to implement. This database change will not be occurring during this branch as it will fall under “Development” and not a bug fix.
The moral of this whole story – have consistent naming convention at the start of your project and then stick with it.
- BUG332 – Project History is just plain text
- BUG365 – TinyMCE overlays the menu
- BUG366 – Project history not accepting input
- BUG368 – Organisation Contact History – does not have the new datetime picker widget
- BUG373 – Customer History does not have datetime picker
- BUG374 – Opportunity does not have datetime picker
- BUG388 – New Opportunity does not have TinyMCE
- BUG389 – New Opportunity does not have datetime picker
- BUG390 – Opportunity Information not utilising TinyMCE widget
- BUG391 – Datatime widget not used in opportunity information
- BUG393 – Clicking the “Nearbeach” logo/home-button has no function/effect.
- BUG394 – New Task description body overlays menu
- BUG395 – Text field placement
- BUG396 – Inconsistent/Incorrect Labelling
- BUG397 – Incorrect Labelling
- BUG399 – Expanded menu doesn’t scroll
The latest release can be found at https://github.com/robotichead/NearBeach/releases/tag/alpha-0.16.1
The 0.16 branch is a stable branch and we recommend using this branch. If you find any issues please notify us on https://bugzilla.nearbeach.org
Good news, the first release of 0.16.0 has been released. All critical bugs have been looked at and fixed.
- BUG352 – Unable to assign existing tasks
- BUG361 – New instance does not contain bug config
- BUG362 – Bug Client Has No permission
- BUG363 – Project not showing connected customer if customer has no organisation
- BUG364 – Multiple Bug Clients – can not search second bug client for bugs
- BUG370 – Quote Template – CSS field should be plain text
- BUG371 – Extracting/Printing PDF not currently working
- BUG372 – Service lines will appear in quote preview even when there are no service lines
- BUG375 – Can not reset password
- BUG376 – Update to Python 3 has broken models
- BUG377 – Email Quote
- BUG378 – No back to users
- BUG380 – Responsible Customers
- BUG381 – Lack of space at bottom of page
- BUG382 – Webserver is down
- BUG385 – Organisation Campus not rendering
- BUG386 – Search ALL does not work
- BUG387 – New project does not work
This branch is currently focused on fixing security issues and bugs. We are hoping to have another release at the end of the week.
Well this is a bit of a click bait title which I didn’t mean for, however I will outline some of my struggles of porting from Python 2.7 to Python 3.6+.
It is the little changes that seems to hurt. Last night I found the following bug – https://bugzilla.nearbeach.org/show_bug.cgi?id=385. What could it mean? My following process weeded out the exact issue (after each test I returned to the original code);
- Remove ALL context – worked
- Set template onto BLANK – worked
- Remove bottom part of the “New Campus” template – did not work
- Remove top part of the “New Campus” template – worked
- Decided the issue was with one of the fields. Removed all fields and start placing them back one at a time
This processes led me to find out that my special widget was producing this issue. So I went to the “forms_special_fields.py” and search for the “render(” function. It found them.
def render(self, name, value, attrs=None, choices=()):
The code above works in Python2.7, however there was a slight change. This code has to now be
def _render(self, name, value, attrs=None, choices=()):
A simple _ was causing a massive critical issue.
Alpha Development-0.16.0 Status
The bug testing and fixing of 0.16.0 is still going ahead rather well. We currently have found 25 initial bugs. We want to make sure that there are NO critical bugs when we release 0.16.0 and then fix up the remaining bugs in later releases.
At the same time we are also fixing up our documentation to represent the change from Python2.7 to Python3.6+. This will include the pictures on Github and also our Confluence site.
This has been a huge release for NearBeach. The following has been achieved;
- Migration from Python 2 to Python 3
- Migration from Django 1.11 to Django 2.1
- Groups can now be children of other groups – further development in the near future
- Users can have “Reports To” under each group
- Create Quote Template for printing/emailing
- New project has an enhanced datapicker
- New task has an enhanced datepicker
Current known issues
As development-0.15.1 is an alpha release we know that there are many issues within the system. We were hoping to fix many of these issues before release however hit an issue during this month. It was unforseen that we had to move to python 3. It was a move that was on the table.
Please note this release will be buggy and we are fixing most bugs in the next development branch (0.16).
We will be updating our documentation over the next week. We currently have commented out most of the sections. We will also be adding a Ubuntu 18.04 section and hopefully a CentOS version before the final release of 0.16 branch.
Test Server Down
Our test server is currently down. We have noticed the issue is caused by Apache consuming large amount of space which in turn is causing MySQL to crash. We are looking at alternative options for apache. We will first determine if it is an apache issue or if it is because of a hungry piece of code I have written. We do require this server for testing purposes this month. More information in the coming week.
I am happy to announce that development branch 0.15.0 will be released tonight. This is also the last branch that be written in python2.7. Now officially we are moving onto python3 (YAY!).
NearBeach is designed to be easy every step of the way. This includes;
- Setting up
Recently we have come across a function that will work perfectly fine on our local station tests, however did not work in the server. This was because the library that the function relied on would not work heedless.
I have been looking for a solution and I think I have found one. The problem is that we need to upgrade to Python3. This is not a small feat.
We have been meaning to do this for a while now as python2.7 runs out of life in the next couple of years. We also want to keep up to date with the latest Django version. We are hoping to make a full upgrade this week whilst completing all this month’s enhancements.