update notes
This commit is contained in:
parent
35f96176c1
commit
4340068ea7
362
docs/notes.org
362
docs/notes.org
|
@ -3,16 +3,26 @@
|
||||||
#+author: Andreas Zweili
|
#+author: Andreas Zweili
|
||||||
:end:
|
:end:
|
||||||
|
|
||||||
* Vocabulary
|
* Introduction
|
||||||
|
** How to work with this file
|
||||||
|
|
||||||
|
1. All URLs should get included as footnotes on order to have a cleaner layout.
|
||||||
|
2. All tasks need a priority, tasks with a priority higher than C are
|
||||||
|
considered must haves for the 1.0 release. Everything with C or lower is
|
||||||
|
considered a nice to have an might never get implemented.
|
||||||
|
3. Once an item changes its status to either DONE or CANCELLED it gets moved to
|
||||||
|
the "Done" heading. CANCELLED items should get an explanation why they were
|
||||||
|
cancelled.
|
||||||
|
|
||||||
|
** Vocabulary
|
||||||
|
|
||||||
- Technician :: An employee working with the inventory tool and full access to
|
- Technician :: An employee working with the inventory tool and full access to
|
||||||
its information.
|
its information.
|
||||||
- Customer :: A customer which owns some of the devices in the inventory tool
|
- Customer :: A customer which owns some of the devices in the inventory tool
|
||||||
and might have access to only the information related to the devices he owns.
|
and might have access to only the information related to the devices he owns.
|
||||||
|
|
||||||
* TODO Must Have [0/8]
|
* TODO Must Have [0/19]
|
||||||
** TODO Views [0/2]
|
** NEXT [#A] add a button to add a relation :computer_detail_view:device_detail_view:
|
||||||
*** NEXT add a button to add a relation :computer_detail_view:
|
|
||||||
|
|
||||||
For the many to many relationships it might be a better idea to add them in a
|
For the many to many relationships it might be a better idea to add them in a
|
||||||
separate form. So that the view displays the information but when you want to
|
separate form. So that the view displays the information but when you want to
|
||||||
|
@ -20,81 +30,230 @@ add a new CPU for example it shows a button "Add CPU" which you can click an it
|
||||||
brings you to a new page where the PC is already preselected and the CPU can
|
brings you to a new page where the PC is already preselected and the CPU can
|
||||||
get selected from a drop down.
|
get selected from a drop down.
|
||||||
|
|
||||||
*** NEXT implement SoftwareDetailView
|
** TODO [#A] Forms [0/11]
|
||||||
|
*** TODO Computer Forms [0/3]
|
||||||
I don't remember what the initial idea here was. We could show here
|
|
||||||
which customers are using this software. But that is currently a really low
|
|
||||||
priority item.
|
|
||||||
|
|
||||||
** TODO Forms [0/12]
|
|
||||||
*** NEXT Computer
|
|
||||||
- [ ] Add
|
- [ ] Add
|
||||||
- [ ] Update
|
- [ ] Update
|
||||||
- [ ] Delete
|
- [ ] Delete
|
||||||
|
|
||||||
*** NEXT Device
|
**** NEXT CPU Forms
|
||||||
- [ ] Add
|
- [ ] Add
|
||||||
- [ ] Update
|
- [ ] Update
|
||||||
- [ ] Delete
|
- [ ] Delete
|
||||||
|
|
||||||
*** NEXT ConnectedDevice
|
**** NEXT RAM Forms
|
||||||
- [ ] Add
|
- [ ] Add
|
||||||
- [ ] Update
|
- [ ] Update
|
||||||
- [ ] Delete
|
- [ ] Delete
|
||||||
|
|
||||||
*** NEXT Customer
|
**** NEXT Disk Forms
|
||||||
- [ ] Add
|
- [ ] Add
|
||||||
- [ ] Update
|
- [ ] Update
|
||||||
- [ ] Delete
|
- [ ] Delete
|
||||||
|
|
||||||
*** NEXT Backup
|
*** TODO Device Forms [0/1]
|
||||||
- [ ] Add
|
- [ ] Add
|
||||||
- [ ] Update
|
- [ ] Update
|
||||||
- [ ] Delete
|
- [ ] Delete
|
||||||
|
|
||||||
*** NEXT UserLicense
|
**** NEXT Warranty Forms
|
||||||
- [ ] Add
|
- [ ] Add
|
||||||
- [ ] Update
|
- [ ] Update
|
||||||
- [ ] Delete
|
- [ ] Delete
|
||||||
|
|
||||||
*** NEXT DeviceLicense
|
*** TODO ConnectedDevice Forms [0/1]
|
||||||
- [ ] Add
|
- [ ] Add
|
||||||
- [ ] Update
|
- [ ] Update
|
||||||
- [ ] Delete
|
- [ ] Delete
|
||||||
|
|
||||||
*** NEXT Net
|
**** NEXT DeviceInNet Forms
|
||||||
- [ ] Add
|
- [ ] Add
|
||||||
- [ ] Update
|
- [ ] Update
|
||||||
- [ ] Delete
|
- [ ] Delete
|
||||||
|
|
||||||
*** NEXT Software
|
*** NEXT Customer Forms
|
||||||
- [ ] Add
|
- [ ] Add
|
||||||
- [ ] Update
|
- [ ] Update
|
||||||
- [ ] Delete
|
- [ ] Delete
|
||||||
|
|
||||||
*** NEXT Users
|
*** NEXT Backup Forms
|
||||||
- [ ] Add
|
- [ ] Add
|
||||||
- [ ] Update
|
- [ ] Update
|
||||||
- [ ] Delete
|
- [ ] Delete
|
||||||
|
|
||||||
*** NEXT Groups
|
*** NEXT UserLicense Forms
|
||||||
- [ ] Add
|
- [ ] Add
|
||||||
- [ ] Update
|
- [ ] Update
|
||||||
- [ ] Delete
|
- [ ] Delete
|
||||||
|
|
||||||
** TODO Various [0/12]
|
*** NEXT DeviceLicense Forms
|
||||||
*** TODO change the admin url
|
- [ ] Add
|
||||||
|
- [ ] Update
|
||||||
|
- [ ] Delete
|
||||||
|
|
||||||
|
*** NEXT Net Forms
|
||||||
|
- [ ] Add
|
||||||
|
- [ ] Update
|
||||||
|
- [ ] Delete
|
||||||
|
|
||||||
|
*** NEXT Software Forms
|
||||||
|
- [ ] Add
|
||||||
|
- [ ] Update
|
||||||
|
- [ ] Delete
|
||||||
|
|
||||||
|
*** NEXT Users Forms
|
||||||
|
- [ ] Add
|
||||||
|
- [ ] Update
|
||||||
|
- [ ] Delete
|
||||||
|
|
||||||
|
*** NEXT Groups Forms
|
||||||
|
- [ ] Add
|
||||||
|
- [ ] Update
|
||||||
|
- [ ] Delete
|
||||||
|
|
||||||
|
** NEXT [#A] cpu reduce required fields :model:
|
||||||
|
|
||||||
|
The CPU has many required fields but sometimes they don't make sense. For
|
||||||
|
example when we have a virtual CPU we usually don't need to know the specific
|
||||||
|
frequenzy.
|
||||||
|
|
||||||
|
** NEXT [#A] the computer is missing a GPU :model:
|
||||||
|
|
||||||
|
CAD computers often have sppecial graphics cards which we should be able to
|
||||||
|
track.
|
||||||
|
|
||||||
|
** NEXT [#A] Days need to be manytomany :model:
|
||||||
|
|
||||||
|
A backup can be run on multiple days
|
||||||
|
|
||||||
|
** NEXT [#A] a backup should be able to contain multiple computers :model:
|
||||||
|
** NEXT [#A] implement view for groups
|
||||||
|
** NEXT [#A] the IP needs to be able to be null :model:
|
||||||
|
|
||||||
|
Currently it's always required however when a device is in DHCP mode we can't
|
||||||
|
know the IP for sure.
|
||||||
|
|
||||||
|
** NEXT [#A] Add a feature to copy objects
|
||||||
|
|
||||||
|
This is a must have for the first release.
|
||||||
|
As a user I would like to have a way of quickly copy an object and make some
|
||||||
|
adjustments in order to add many objects after another.
|
||||||
|
|
||||||
|
** NEXT [#A] Add search boxes to the views.
|
||||||
|
|
||||||
|
So that one can search for a string in the responding column.
|
||||||
|
|
||||||
|
** NEXT [#A] Create custom user model :model:
|
||||||
|
|
||||||
|
It is best practice to create a custom user model to allow future modifications
|
||||||
|
to the users without causing problems.
|
||||||
|
|
||||||
|
** NEXT [#B] Implement a license check into all forms
|
||||||
|
|
||||||
|
This should prevent technicians from assigning licenses which the customer has
|
||||||
|
already fully used.
|
||||||
|
|
||||||
|
** NEXT [#B] calculate licence usage for customer
|
||||||
|
|
||||||
|
The view should show the licenses which the customer currently has available
|
||||||
|
and how many are already used. In addition it should show a visual warning to
|
||||||
|
the technician when the limit is reached.
|
||||||
|
|
||||||
|
** NEXT [#B] Convert the NETSheet Data file to YML fixtures.
|
||||||
|
|
||||||
|
A lot of this is already done. Only the hardware models are currently missing.
|
||||||
|
|
||||||
|
** NEXT [#B] Check tests for response.context[‚table‘]
|
||||||
|
|
||||||
|
This would allow for tests of the views which check explicitly what gets
|
||||||
|
returned by the view. Might be easier/faster then rendering the whole view.
|
||||||
|
|
||||||
|
However for some views it would be better to test the final view because the
|
||||||
|
template contains logic which can fail.
|
||||||
|
|
||||||
|
** NEXT [#B] Have a look at the documentation of django-nested-admin
|
||||||
|
|
||||||
|
I implemented nested-admin currently in a very basic way. I should read the
|
||||||
|
documentation in order to make sure that I'm using it correctly.
|
||||||
|
|
||||||
|
** NEXT [#B] have a look at django select_related, it might solve a problem for me.
|
||||||
|
|
||||||
|
I often find myself trying to get related objects. The method select_related
|
||||||
|
might help with that:
|
||||||
|
- https://docs.djangoproject.com/en/2.2/ref/models/querysets/#select-related
|
||||||
|
|
||||||
|
** NEXT [#B] Add the warranty to the Device, ConnectedDevice and Computer admin pages
|
||||||
|
|
||||||
|
This is a relationship which a technician should be able to add directly on the
|
||||||
|
device and not have to navigate to the warranty option first.
|
||||||
|
|
||||||
|
** NEXT [#B] Extend the Admin tables
|
||||||
|
|
||||||
|
The admin tables show currently very little information about the various
|
||||||
|
objects. At minimum every object should display the customer it belongs to.
|
||||||
|
|
||||||
|
* TODO Nice to Have [0/13]
|
||||||
|
** NEXT [#C] allow technicians to add custom fields
|
||||||
|
|
||||||
|
This would allow technicians to create custom models without change
|
||||||
|
Maybe this approach would be something:
|
||||||
|
- https://stackoverflow.com/questions/34907014/django-allow-user-to-add-fields-to-model
|
||||||
|
|
||||||
|
** NEXT [#C] Extend the CSS
|
||||||
|
|
||||||
|
- A more centered layout would be nice
|
||||||
|
- Maybe some colours
|
||||||
|
|
||||||
|
** NEXT [#C] calculate the used space on a host
|
||||||
|
|
||||||
|
Means calculate the size all the VMs would use if they were thick.
|
||||||
|
This could help a technician to properly plan ressources on a host.
|
||||||
|
|
||||||
|
** NEXT [#C] include a RAID calculator
|
||||||
|
|
||||||
|
I would like to use this to show the usable space in a RAID system. Currently
|
||||||
|
we enter this information by hand but it would be easier to calculate it
|
||||||
|
automatically.
|
||||||
|
- https://thoughtworksnc.com/2017/08/30/writing-a-raid-calculator-in-python
|
||||||
|
|
||||||
|
** NEXT [#C] Get warranty information from Dell
|
||||||
|
|
||||||
|
We sell a lot of Dell devices and it would be nice to use the service tags to
|
||||||
|
collect the warranty information directly from Dell. There's an API for that:
|
||||||
|
https://www.programmableweb.com/api/dell-warranty-status-rest-api
|
||||||
|
|
||||||
|
** NEXT [#C] A "to deactivate" feature on inventory users
|
||||||
|
|
||||||
|
This way a technician could mark a user for deactivation and anyone could check
|
||||||
|
if there are users to deactivate. This would help if we would've to deactivate
|
||||||
|
a user at a certain date. The inventory tool could then show to all technicians
|
||||||
|
that the user needs to be deactivated. Then any technician could deactivate the
|
||||||
|
user and not just the technician responsible for the customer, increasing the
|
||||||
|
security of the customer.
|
||||||
|
|
||||||
|
** NEXT [#C] Filter Hardware Model to corresponding device manufacturer
|
||||||
|
|
||||||
|
When changing the HardwareModel field of a device the dropdown should be
|
||||||
|
filtered to the provided DeviceManufacturer.
|
||||||
|
|
||||||
|
Currently it could still make sense to make the DeviceManufacturer only
|
||||||
|
available through the HardwareModel. This way we wouldn't have to filter the
|
||||||
|
HardwareModel dropdown. However we would loose the ability to only select the
|
||||||
|
DeviceManufacturer for a device in case we don't know the specific model which
|
||||||
|
happens quite often.
|
||||||
|
|
||||||
|
** NEXT [#C] change the admin url
|
||||||
|
|
||||||
For security reasons it's recommended to change the name of the admin panel
|
For security reasons it's recommended to change the name of the admin panel
|
||||||
url. This way automated tools can't find it so easy. It only increases the
|
url. This way automated tools can't find it so easy. It only increases the
|
||||||
security slightly.
|
security slightly.
|
||||||
|
|
||||||
*** TODO update the url code
|
** NEXT [#C] update the url code
|
||||||
|
|
||||||
I'm currently not sure what I wanted to do with this.
|
I'm currently not sure what I wanted to do with this.
|
||||||
https://docs.djangoproject.com/en/2.2/topics/http/urls/#views-extra-options
|
https://docs.djangoproject.com/en/2.2/topics/http/urls/#views-extra-options
|
||||||
|
|
||||||
*** TODO implement guardian
|
** NEXT [#C] implement guardian
|
||||||
|
|
||||||
This needs to be done for basically every model which lives on a view. E.g.
|
This needs to be done for basically every model which lives on a view. E.g.
|
||||||
~BackupListView~, ~SoftwareListView~. I can’t remember how this should be
|
~BackupListView~, ~SoftwareListView~. I can’t remember how this should be
|
||||||
|
@ -107,152 +266,27 @@ security concept works like this:
|
||||||
on. Therefore it's better to quickly check the customer before we fetch all
|
on. Therefore it's better to quickly check the customer before we fetch all
|
||||||
the other objects from the database.
|
the other objects from the database.
|
||||||
|
|
||||||
*** TODO calculate licence usage for customer
|
** NEXT [#C] Implement an excel import and export
|
||||||
|
|
||||||
The view should show the licenses which the customer currently has available
|
|
||||||
and how many are already used. In addition it should show a visual warning to
|
|
||||||
the technician when the limit is reached.
|
|
||||||
|
|
||||||
*** TODO Convert the NETSheet Data file to YML fixtures.
|
|
||||||
|
|
||||||
A lot of this is already done. Only the hardware models are currently missing.
|
|
||||||
|
|
||||||
*** TODO Check tests for response.context[‚table‘]
|
|
||||||
|
|
||||||
This would allow for tests of the views which check explicitly what gets
|
|
||||||
returned by the view. Might be easier/faster then rendering the whole view.
|
|
||||||
|
|
||||||
However for some views it would be better to test the final view because the
|
|
||||||
template contains logic which can fail.
|
|
||||||
|
|
||||||
*** TODO Create custom user model
|
|
||||||
|
|
||||||
It is best practice to create a custom user model to allow future modifications
|
|
||||||
to the users without causing problems.
|
|
||||||
|
|
||||||
*** TODO [#C] Implement an excel import and export
|
|
||||||
|
|
||||||
might be achieved with this project:
|
might be achieved with this project:
|
||||||
- https://github.com/pyexcel-webwares/django-excel
|
- https://github.com/pyexcel-webwares/django-excel
|
||||||
This might be a nice to have feature but the copy button is more important to
|
This might be a nice to have feature but the copy button is more important to
|
||||||
achieve a similar funcition.
|
achieve a similar funcition.
|
||||||
|
|
||||||
*** TODO Have a look at the documentation of django-nested-admin
|
** NEXT [#C] implement SoftwareDetailView
|
||||||
|
|
||||||
I implemented nested-admin currently in a very basic way. I should read the
|
I don't remember what the initial idea here was. We could show here
|
||||||
documentation in order to make sure that I'm using it correctly.
|
which customers are using this software. But that is currently a really low
|
||||||
|
priority item.
|
||||||
|
|
||||||
*** TODO have a look at django select_related, it might solve a problem for me.
|
** NEXT [#C] Add a check to see if a software has a license attached to it.
|
||||||
|
|
||||||
I often find myself trying to get related objects. The method select_related
|
I forgot the reason why I need this. Maybe to show in general if a software has
|
||||||
might help with that:
|
any licenses attached to it.
|
||||||
- https://docs.djangoproject.com/en/2.2/ref/models/querysets/#select-related
|
Add a check to see if a software has a license attached to it.If so it
|
||||||
|
increases the used licenses counter. Maybe with this:
|
||||||
*** TODO Add the warranty to the Device, ConnectedDevice and Computer admin pages
|
|
||||||
*** TODO [#A] Add a feature to copy objects
|
|
||||||
|
|
||||||
This is a must have for the first release.
|
|
||||||
|
|
||||||
** TODO Licenses [0/2]
|
|
||||||
*** TODO Implement a license check into all forms
|
|
||||||
|
|
||||||
This should prevent technicians from assigning licenses which the customer has
|
|
||||||
already fully used.
|
|
||||||
|
|
||||||
*** TODO Add a check to see if a software has a license attached to it.
|
|
||||||
|
|
||||||
Add a check to see if a software has a license attached to it. I forgot the
|
|
||||||
reason why I need this. If so it increases the used licenses counter.
|
|
||||||
Maybe with this:
|
|
||||||
- https://stackoverflow.com/questions/23059088/manytomany-field-check-if-relation-exists
|
- https://stackoverflow.com/questions/23059088/manytomany-field-check-if-relation-exists
|
||||||
|
|
||||||
** TODO Computer [0/1]
|
|
||||||
*** NEXT cpu reduce required fields
|
|
||||||
|
|
||||||
The CPU has many required fields but sometimes they don't make sense. For
|
|
||||||
example when we have a virtual CPU we usually don't need to know the specific
|
|
||||||
frequenzy.
|
|
||||||
|
|
||||||
** TODO Backups [0/2]
|
|
||||||
*** NEXT Days need to be manytomany
|
|
||||||
|
|
||||||
A backup can be run on multiple days
|
|
||||||
|
|
||||||
*** NEXT a backup should be able to contain multiple computers
|
|
||||||
|
|
||||||
** TODO Groups [0/2]
|
|
||||||
*** NEXT Table for groups
|
|
||||||
*** NEXT the computer is missing a GPU
|
|
||||||
|
|
||||||
CAD computers often have sppecial graphics cards which we should be able to
|
|
||||||
track.
|
|
||||||
|
|
||||||
** TODO NETs [0/1]
|
|
||||||
*** NEXT the IP needs to be able to be null
|
|
||||||
|
|
||||||
Currently it's always required however when a device is in DHCP mode we can't
|
|
||||||
know the IP for sure.
|
|
||||||
|
|
||||||
* TODO Nice to Have [0/9]
|
|
||||||
*** TODO allow technicians to add custom fields
|
|
||||||
|
|
||||||
This would allow technicians to create custom models without change
|
|
||||||
Maybe this approach would be something:
|
|
||||||
- https://stackoverflow.com/questions/34907014/django-allow-user-to-add-fields-to-model
|
|
||||||
|
|
||||||
*** TODO Extend the CSS
|
|
||||||
|
|
||||||
- A more centered layout would be nice
|
|
||||||
- Maybe some colours
|
|
||||||
|
|
||||||
*** TODO calculate the used space on a host
|
|
||||||
|
|
||||||
Means calculate the size all the VMs would use if they were thick.
|
|
||||||
This could help a technician to properly plan ressources on a host.
|
|
||||||
|
|
||||||
*** TODO include a RAID calculator
|
|
||||||
|
|
||||||
I would like to use this to show the usable space in a RAID system. Currently
|
|
||||||
we enter this information by hand but it would be easier to calculate it
|
|
||||||
automatically.
|
|
||||||
- https://thoughtworksnc.com/2017/08/30/writing-a-raid-calculator-in-python
|
|
||||||
|
|
||||||
*** TODO Get warranty information from Dell
|
|
||||||
|
|
||||||
We sell a lot of Dell devices and it would be nice to use the service tags to
|
|
||||||
collect the warranty information directly from Dell. There's an API for that:
|
|
||||||
https://www.programmableweb.com/api/dell-warranty-status-rest-api
|
|
||||||
|
|
||||||
*** TODO Move the lists to their own page
|
|
||||||
|
|
||||||
Since I have more devices than I thought it would provide a better overview
|
|
||||||
than one big list. Forgot again what this exactly means.
|
|
||||||
|
|
||||||
*** TODO A "to deactivate" feature on inventory users
|
|
||||||
|
|
||||||
This way a technician could mark a user for deactivation and anyone could check
|
|
||||||
if there are users to deactivate. This would help if we would've to deactivate
|
|
||||||
a user at a certain date. The inventory tool could then show to all technicians
|
|
||||||
that the user needs to be deactivated. Then any technician could deactivate the
|
|
||||||
user and not just the technician responsible for the customer, increasing the
|
|
||||||
security of the customer.
|
|
||||||
|
|
||||||
*** TODO Add search boxes to the views.
|
|
||||||
|
|
||||||
So that one can search for a string in the responding column.
|
|
||||||
|
|
||||||
*** TODO Filter Hardware Model to corresponding device manufacturer
|
|
||||||
|
|
||||||
When changing the HardwareModel field of a device the dropdown should be
|
|
||||||
filtered to the provided DeviceManufacturer.
|
|
||||||
|
|
||||||
Currently it could still make sense to make the DeviceManufacturer only
|
|
||||||
available through the HardwareModel. This way we wouldn't have to filter the
|
|
||||||
HardwareModel dropdown. However we would loose the ability to only select the
|
|
||||||
DeviceManufacturer for a device in case we don't know the specific model which
|
|
||||||
happens quite often.
|
|
||||||
|
|
||||||
|
|
||||||
* Ressources
|
* Ressources
|
||||||
** Class Based Views
|
** Class Based Views
|
||||||
|
|
||||||
|
@ -487,3 +521,9 @@ CLOSED: [2020-04-27 Mo 21:31]
|
||||||
With currently the containers don't disappear fully. Should be easy to fix.
|
With currently the containers don't disappear fully. Should be easy to fix.
|
||||||
|
|
||||||
|
|
||||||
|
** CANCELLED Move the lists to their own page
|
||||||
|
CLOSED: [2020-04-27 Mo 22:15]
|
||||||
|
|
||||||
|
Since I have more devices than I thought it would provide a better overview
|
||||||
|
than one big list. Forgot again what this exactly means.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue