1. 27 Mar, 2024 20 commits
    • Romain Courteaud's avatar
      slapos_configurator: do not prevent slapos_category to be updated · a8d044bd
      Romain Courteaud authored
      Also in this commit: update tests
      * use backup cloudooo
        nexedi/slapos@a729a677
      * many dependencies have been dropped
      * change module id generator
      * portal_callables is not handle by the configurator
        See nexedi/erp5@a55b0f78
      a8d044bd
    • Romain Courteaud's avatar
      slapos_erp5: support for the virtual master logic · 7380b57e
      Romain Courteaud authored
      There are 4 types of assigment family:
      * The accounting team has assignment like: accounting/manager or accounting/agent
        They can see all invoices, but can not modify the automated ledger
      * The sale team has assignment like: sale/manager or sale/agent
      * A virtual master customer has an assignment like:
          function/customer
          destination_project/THE_PREFERED_DEFAULT_PROJECT
        He can request instance trees.
        He can see all the nodes on the virtual master.
      * The virtual master manager has assignment like:
          function/production/manager
          destination_project/THE_PROJECT
          or
          function/production/agent
          destination_project/THE_PROJECT
        He is responsible to create the compute node and ensure the quality
        of the service provided on it (so, he manages the related crm).
      
      Worklist must be usable, to quickly allow any user to know what is
      expected from him in the system.
      
      Also in this commit:
      * change the module id generator to _generatePerDayNodeNumberId
        to reduce conflicts on object creation
      * change bt5 dependencies to use the new panel UI
      7380b57e
    • Romain Courteaud's avatar
    • Romain Courteaud's avatar
      slapos_jio: · 3a413a27
      Romain Courteaud authored
      * drop open/personal allocation_scope
      * allocation_scope/open/public and friend do not exist anymore
      * drop slap_add_compute_node page
      * drop slap_project_list page
      * change status gadget to support parameter configured on the gadget field
      * drop slap_project_view page
      * drop slap_transfer_compute_node
      * drop slap_compute_node_view page
      * drop slap_compute_node_revoke_certificate page
      * drop compute_node_request_certificate page
      * drop not implemented update_allocation_scope action on compute node
      * drop not implemented update_category action on compute node
      * drop slap_compute_node_list page
      * drop slap_ticket_list page
      * drop slap_add_ticket page
      * use parameters as if they were configured on the gadget field
      * drop support request view page
      * drop web message view
      * drop slap_add_related_event page
      * drop service_list page
      * drop Software Release view
      * drop Software Product view
      * drop software installation creation
      * move SoftwareInstallation_getSoftwareReleaseInformation
      * drop slap_select_software_product/release pages
      * drop slap_software_installation_view page
      * drop slap_destroy_software_installation page
      * instance tree actions moved to slapos_panel
      * drop slap_add_instance_tree page
      * accept parameters as provided by GadgetField
      * drop instance tree view action
      * only check accessible instances
      * drop gadget_erp5_page_slap_instance_tree_view
      * drop slap_software_instance_view page
      * drop person.requestOrganisation
      * do not delete all categories on Credential Request and set destination_project
      * revert: restore WebSection_newCredentialRequest as previously
      * drop close ticket
      * drop SoftwareProduct_getSoftwareReleaseAsHateoas
      * drop Upgrade Decision view
      * drop Computer Network views
      * drop Computer Network scripts
      * drop add_organisation page
      * update renderjs_oss modification date
      * fixup rebase
      * drop Compute Node Token previous implementation
      * erp5_web_renderjs_ui | RJS is managed by erp5_web_renderjs_ui bt5
      * move most stuff to slapos_jio_before_deletion
        Keep slapos_jio minimal to simplify the rebase on the files to keep
      * keep status gadget
      * forgot to drop actions
      * restore label_listbox_field
      * restore status gadget first rendering
        onLoop must be fixed probably
      * status gadget portal _type is provided by the python script
      * do not mess with cursor used by browser
        it only confuses users
      * do not display links without href
      * disable gadget status onLoop
        Instead of jio.get, the paramers must provide the url to query,
        otherwise, it is not possible to use this gadget in the full ERP5JS
      * reintroduce all stuff from slapos_jio_before_deletion
        my branch is not ready to drop everything
      * fixup rebase
      * drop files moved to portal_skins
      * move to slapos_panel
      3a413a27
    • Romain Courteaud's avatar
      slapos_panel_ui_test: · f9da6033
      Romain Courteaud authored
      * test panel scenario
      * validate testFunctionalSlapOSPanelStyle
      * dependency
      *  HARDCODED data/user bootstrap
      *  passwd policy
      * use theia directly in the test
      * WIP shared instance test
      * shared instance test
      * limit Software Instance to manager only
      * add basic payable service test
      * randomize logins
      * check consistency at the end of the test
      * slapos_panel_ui_test: check all project related documents as project manager
      * execute all alarms at the end of the test to detect unexpected side effects
      * ensure we can activate slave allocation on same tree
      * test remote node allocation
      * test Slave Instance allocation on Remote Node
      * ensure request limit the list of release/type based on allocation supply
      * test Upgrade Decision actions
      * test Computer Network creation
      * use Person_addVirtualMaster
      * do not explicitely call alarms
        rely on interaction workflow instead
      * add Software Product to create Subscription Request
      * add Sale Supply for virtual master
      * fixup to generate subscription request and use the instance parameter editor
      * fixup Instance editor usage
      * set reference on the Trade Condition
      * fix consistency of other documents before running the tests
      * request instance action has been modified
      * fixup accounting scenario
      * text: configure trade_condition_type on the Sale Trade Condition
      * test: assignments are automatically created when adding a virtual master
      * fix Trade Condition creation
      * update selector used by the new jsoneditor
      * discussion_thread_reader gadget is now used
      * do not check Web Site consistency
      * no need to define the currency manually
      * search link has been removed. Access global search manually
      * do not check System Preference
      * test: set the region on customer accounts
      f9da6033
    • Romain Courteaud's avatar
      slapos_panel: · 086b2c41
      Romain Courteaud authored
      * close erp5js as new panel
      * add WIP access page on panel
      * add an action to create a Compute Node from a Project
      * add custom CSS, to reduce site confusion
      * drop unused code
      * add Project Module view
      * add project view
      * add Compute Node view
      * proxify the gadget fields
      * add compute node revoke certificate
      * add compute node request certificate action
      * add compute node module view
      * add Ticket module view
      * add new Support Request from Instance Tree and Compute Node
      * add support request view
      * add event module view
      * fix add compute node action title
      * add Mail/Web Message view
      * add add_slapos_event action
      * add instance tree module view
      * add software product module view
      * add Software Product view
      * add add_slapos_software_product on project
      * add Software Release Module view
      * SoftwareProductModule_viewSoftwareProductListOnSlaposPanel view
      * add Software Release view
      * reference is needed on the created software product
      * add Software Release action
      * show software release state
      * setup software release language
      * create Software Installation
      * fixup portal_status_message propagation
      * move SoftwareInstallation_getSoftwareReleaseInformation
      * add Software Installation Module view
      * configure website view and CSP
      * add Software Installation view
      * add request_slapos_destroy
      * move instance action from slapos_cloud
      * move instance tree action from slapos_cloud
      * add Project request_slapos_instance_tree action
      * add Instance Tree view
      * add Instance Tree update parameter action
      * add Software Instance view
      * add Slave Instance view
      * add Software Instance Module view
      * try to install slapos_panel in test
      * only show action if the project is validated
      * set configuration_default_project_relative_url on panel web site
      * revert: no need to set default project on web site
      * export the panel web sections
      * view Subscription Request Module
      * do not crash if document is not linked to a project
      * fork header/panel gadgets
      * fork header/panel
      * only export last workflow history
      * do not display action view list in the panel
      * only show "slapos" actions in the panel
      * do not display "Modules" and workflow actions
      * do not display "Editable" checkbox
      * do not display "Logout" link
      * fixup: only export last workflow history
      * use "vifib.cloud" icon on the panel
      * do not display search form in the panel
      * requires Release/Type variations when creating Software Product
      * jump to Software Release
      * add Release view
      * jump from Project to Software Product
      * Release are now Software Product variation
      * review View section in panel
        Needed to cancel jump view
      * jump_to_slapos_software_type
      * add Software Type view
      * add Software Type action
      * jump to Compute Node from project
      * initialise Software Release title (to not see the ID by default)
      * Release are now Software Product sub objects
      * create draft allocation supply from project
      * translate string
      * add Allocation Supply view
      * view Allocation Supply Line
      * create Software Installation from Allocation Supply
      * show Allocation Supply list
      * only show allocable Software Product when requesting
      * jump to project instance trees
      * hide header link to prevent confusion
        Good links must be defined in next version
      * show all project support request
      * close ticket action
      * prefill all Software Product info from JS
      * create Instance Node from Instance Tree
      * create Allocation Supply from Instance Node
      * software.json contains multiple entries with the same software-type
      * do not create multiple Instance Node from an Instance Tree
      * show project Instance Nodes
      * show Compute/Instance Node's allocation supplies
      * handle software product with only one software type
      * try not to duplicate software product
      * improve software release creation
        extend software type list
      * no need to manually create software type
      * only check Software Product from the same project
      * person view
      * use Allocation Supply to return the list of Software Product
      * use Project_getSoftwareProductPredicateList to find Software Product
      * show Allocation Supply destination
      * invalidate Allocation Supply
      * add Allocation Supply Module view
      * Instance Node view
      * do not add Instance Tree for project with accounting
      * add an exemple of payable product list
      * drop unused script
      * add Sale Supply for Project
      * validate/invalidate Sale Supply
      * show price unit
      * add missing view action on Instance Node
      * add field to allow slave on same instance tree
      * add actions for Remote Node
      * jump from Project to Remote Node
      * export favicon
        it was dropped from slapos_web
      * restrict the list of software type based on allocation supply
      * drop upgrade_scope
      * add Upgrade Decision view/actions
      * change action title from View to Panel View
        To make coding style test happier
      * display translated state title
      * add Computer Network
      * add Computer Network jump
      * show Computer Network related Compute Nodes
      * invalidate Computer Network
      * install payzen/wechat dependencies
        they were provided by subscription bt5
      * fetch currency from project default trade condition
      * use Project_getAccountingCurrency
      * use Project_getAccountingCurrency in action conditions
      * action to create a virtual master for a user
      * Person_addVirtualMaster: try to find trade condition with Trade Model Line and currency
      * require currency information when creating a virtual master
      * merge request payable/non payable instance actions
      * update slapos_master_panel modification date
      * update add Sale SUpply action
      * do not install slapos_subscription_request
      * add dependencies
      * alphabetical order
      * restore Compute Node token creation and usage
        Token is now created from a Project
      * dependency to slapos_jio
        keep status gadget and the parameter gadget in their original bt5, to simplify rebase
      * add missing js dependencies for the json schema validator gadget
      * drop hardcoded url
      * restore status gadget first rendering
        onLoop must be fixed probably
      * project does not have status gadget anymore
      * use getPreferredHateoasUrl to generate the compute token
        improve consistency with slaptool (configure this value in 1 place only)
      * readd translation bt5 dependencies
      * configure trade_condition_type on the Sale Trade Condition
      * adding a virtual master also adds assignment for the user
      * drop unused script
      * show the issue when it is not possible to add a virtual master
      * more assertion when creating a virtual master
      * Subscription Request categories were inverted
      * prototype Subscription Request's events view
      * display the discussion in read only mode
      * use discussion gadget on Support Request
      * do not build url by joing strings
      * create Virtual Master only for validated Person
      * simplify configuration by not requiring to fill the hateoas url in the preferences
      * allow to enter the API url on the web site panel
      * project's codification is used to generate the local roles
      * drop useless field tales which hide the content
      * ensure the url is relative to the web site, but without containing a //
      * those files exist in slapos_cloud
      * desactivat the Supply action
        Force user to supply from the Allocation Supply configuration.
        otherwise, alarms will clean up the manually added Software Installation.
      * user has no group if it can not even access the Project
      * use souce_project to find the trade condition
        no need to trick source/destination project anymore, as trade_condition_type is used
      * add a Sale Supply Line for the Compute Node price
      * SoftwareInstallation_getNewsDict has been dropped
      * add missing arguments
      * ComputeNode_getSoftwareReleaseState was replaced by SoftwareInstallation_getInstallationState
      * add activate_kw parameter
      * virtual master can be free, and instance payble
      * control trade condition reference length
      * drop ComputeNode_getNewsDict
      * jsoneditor needs unsafe-inline style
      * fixup support request creation
      * fix Support Request listbox
      * fix support request view
      * use source_project as sender if none is defined
      * ticket use source_project
      * stop using dropped requestEvent workflow transition
      * customer can not close tickets
      * allow customer to see the list of tickets
      * validate the ticket when possible
      * stop using gadget_slapos_event_discussion_entry
      * display and sort by start date
      * show software types and releases
      * show instance allocation information
      * show Instance/Remote Node
      * set the expected Sale Supply by default
      * drop computer network status field
      * XXX drop slapos_jio dependency
      * activate the service worker
      * move login page templates
      * moved to slapos_panel
      * move to slapos_panel
      * add Preference view
      * add Subscription Request view action
      * drop global search
      * use slapos view on the access page
      * add Regularisation Request view
      * change panel access page to only show user services/projects/computers/tickets
      * add a global request action
      * do not show invalidated tickets
      * move to slapos_panel
      * display radiofield vertically
      * make request dialog a bit more understandable
      * do not propose to close the ticket if it is already closed
      * show action on panel
      * action to create a Ticket on the Project context
      * add an action to manually create an upgrade decision
      * show user's invoice
      * disable the search on the panel access page
        (it is not correctly working)
      * display invoice payment state
      * reintroduce payzen interface
      * do not show/create to object not from the same project in relation field
      * reintroduce RSS feeds
      * moved from slapos_jio
      * if the virtual master is paid by an organisation, it will also pay for compute node
      * drop custom green css
      086b2c41
    • Romain Courteaud's avatar
      slapos_jio_before_deletion: · ee373ec4
      Romain Courteaud authored
      * restore status gadget first rendering
        onLoop must be fixed probably
      * drop organisation/site pages
      * drop project creation/deletion pages
      * drop gadget_erp5_page_slap_cloud_contract_view_js
      * drop template_software_installation
      * drop template_instance_tree
      * drop template_software_instance
      * move login page templates
      * moved to slapos_panel
      * moved from slapos_jio
      * drop pages
      ee373ec4
    • Romain Courteaud's avatar
      slapos_wechat: support new ID generator · a8a192bd
      Romain Courteaud authored
      Modules switched to per day/node ID generator.
      
      Also in this commit:
      * drop not needed trade conditions
      a8a192bd
    • Romain Courteaud's avatar
      slapos_payzen: support new ID generator · 63c98593
      Romain Courteaud authored
      Modules switched to per day/node ID generator.
      
      Also in this commit:
      * drop templates
      * drop not needed trade conditions
      63c98593
    • Romain Courteaud's avatar
    • Romain Courteaud's avatar
      slapos_crm: support for the virtual master logic · c9b2e932
      Romain Courteaud authored
      Unify Ticket and Event creation, to ensure consistency on the different categories.
      Use causality category instead of aggregate, to link the Ticket to the context document (instance, node, ...).
      Aggregate must be used to define the item of the movement resource.
      
      Monitoring: the tickets are managed by the virtual master admin,
      who is responsible to provide a good service quality.
      Admin will use their worklist to see the ongoing tickets.
      
      Regularisation Request: this ticket is handle by the accounting team.
      Unpaid invoice can be related to any kind of service (instance, node), which
      have only 2 states from the ticket point of view: running or destroyed.
      Only check the automated ledger, do not be impacted by other kind of invoices.
      
      Prevent allocation if a customer has an ongoing Regularisation Request.
      
      TODO: handle case of unpaid invoices for professional customers
      
      Also in this commit:
      * drop templates
      * use interaction workflow to trigger alarms
      c9b2e932
    • Romain Courteaud's avatar
      slapos_subscription_request: subscription request is only used to generate an Open Sale Order · ce178a97
      Romain Courteaud authored
      A Subscription Request is a ticket, which should be used to generate an Open Sale Order for a service.
      When the Open Order is created, the ticket is closed, and not used anymore.
      
      Drop the Subscription Condition object.
      Using Sale Trade Condition is enough to define all the Open Order profiles.
      Using Sale Supply is enough to define the prices.
      
      As services can be created from SlapOS API, the Subscription Request
      can be created after the service already exists.
      Block allocation until the Open Sale Order has not been yet created.
      User will be able to fill the services details, without it being used in the system.
      
      Open Sale Order must be created, even if the service is free, to allow
      using the inventory API on the services (using Packing List).
      
      In order to reduce the number of invoice for the customer, ensure the
      invoice date is stable for a customer, and provide discount to not invoice
      unused period.
      Do not use the same date for every users, to reduce load on the system
      for that day.
      
      To accept a payable service Subscription Request, the customer must
      provide a deposit, which may be used to pay a not paid monthly invoice.
      
      Also in this commit:
      * drop not needed templates
      * use interaction workflow to trigger alarms
      * drop ecommerce dependency
      ce178a97
    • Romain Courteaud's avatar
      slapos_accounting: stop generating a single open sale order per user · 26e57b41
      Romain Courteaud authored
      Instead of having a giant versionned Open Sale Order, containing all user
      subscriptions, create one Open Sale Order per subscription.
      The Open Order state can now be used to mark the subscription status.
      
      This reduce the simulation tree size, as a such tree will not be
      updated anymore when a subscription ends.
      
      The Open Order stop date is set when closing the Open Order.
      
      Create a new 'automated' ledger category, to explicitely mark the
      deliveries managed by the alarms / scripts.
      Drop the explicit reference of a specific business process / trade condition,
      and allow any Trade Condition to be used, based on its predicate/trade_condition_type configuration.
      
      Ensure the items are propagated in the simulation movements and delivery lines.
      
      Aggregate Sale Invoices, based on their Trade Condition and profile values.
      A user will have multiple invoices if he is using multiple virtual master's services.
      
      Implement a VAT calculation for France only for now.
      Delivery Line with a taxable business_contribution must trigger the
      tax calculation script (which depends on many factors like type of sold items, customer address, ...)
      and explicitely mark on the line the VAT rate.
      Customer address can be modified in futur, without impacting the delivery
      vat calculation.
      
      Also in this commit:
      * drop template usages
      * use interaction workflow to trigger alarms
      * do not generate invoice with a 0 total price
      * drop hardcoded reference of hardcoded currencies
      * add contraints on the simulation logic, to prevent generating wrong movements
      * configure Sale Supply to allow more complex price definitions
      * allow using any kind of resource on the deliveries
      * disable consumption delivery generation (until better specified)
      * stop forcing/hardcoding payment mode in advance
      * support for variated resources
      * allow to manually pay multiple invoices with a single payment
      * drop the cloud contract tricks
      * destroy items as soon as the Open Order is closed
      * add a discount service to reduce the invoice price if wanted
      * add a deposit service to support invoice prepayment
      26e57b41
    • Romain Courteaud's avatar
      slapos_pdm: support for the virtual master logic · 8cfe8d48
      Romain Courteaud authored
      A Software Product is a variated resource with 2 axes:
      - Software Product Release Variation (optional variation),
        to not force updating Order/Delivery every time one Instance is upgraded
      - Software Product Type Variation
      It is linked to a Project (virtual master).
      
      Redesign the Upgrade Decision logic.
      It is now a Ticket, generated by the Allocation Supply configuration:
      - upgrade is different for every Project
      - upgrade can be triggered on a specific Node, or for a specific user
      
      Upgrade Decision is created automatically only if there is a single possible release allocable
      for a Software Product.
      Otherwise, it must be created manually.
      
      The Upgrade Decision must be approved by the Project manager,
      who is responsible for the Allocation Supply configuration.
      
      Also in this commit:
      * drop template usage
      * trigger alarm with interaction workflow
      8cfe8d48
    • Romain Courteaud's avatar
      slapos_slap_tool: support for the virtual master logic · b3300d0f
      Romain Courteaud authored
      A project reference is required to create a compute node.
      
      Add compatibility with the user request
      Console client does not send a project reference.
      Try to guess it for simple cases
      b3300d0f
    • Romain Courteaud's avatar
      slapos_cloud: add virtual master concept · a22f28a8
      Romain Courteaud authored
      Drop the allocation scope open/subscription/public logic.
      
      Instead, use Project as Virtual Master, and force
      all slapos_cloud object to be linked to one Project:
      * every Compute Node is linked to a Project
      * any Project's Instance can be allocated on a Project's Compute Node
      
      Allocation is managed by configuring an Allocation Supply document,
      which defined on which Compute Node a Software Product can be allocated.
      
      User are not allowed anymore to change the release/type/shared state of their Instance Tree.
      
      Managing Compute Node is done on the virtual master level, and so,
      there is no need to define any Compute Node administrator.
      
      A Software Product is a variated resource with 2 axes: software release url and softare type.
      
      Slave Instance are now allocated on Instance Node, which is created
      from the Software Instance which will control the configuration.
      Slave Instance allocation is also controlled by an Allocation Supply,
      which allow separating the Software Instance and Slave Instances versions.
      
      There could be any number of virtual master in the system.
      Every virtual master defines its own Software Products.
      Because of this, it is not possible to change a document's virtual master
      after its creation.
      
      Instance request can be propagated on another virtual master, by
      allocating them on a Remote Node document, which will generate
      a new Instance Tree request on another virtual master.
      
      Also in this commit:
      * trigger alarms as soon as possible with interaction workflow
        which allows to reduce some alarms frequency
      * drop never used Organisation logic
      * drop person.requestSite
      * drop audit_validation_workflow
      * drop ComputePartition_getCustomAllocationParameterDict
        This is a hack incompatible with virtual master standalone logic.
      * drop cloud contract
      * do not sort security base category when generating local roles
        Otherwise, it is not possible to ensure source_section/function and destination/function generate the same local role
      * stop using hardcoded currency/organisation/trade condition/business process
      * drop templates usages
      * add One Time Virtual Master Access Token portal type
        Needed for compatibility with the compute node deploy script
      a22f28a8
    • Romain Courteaud's avatar
      slapos_category: · 6f11cc66
      Romain Courteaud authored
      * add new business application categories
      * export edger category
      * automated ledger is not only for accounting
      * drop allocation_scope/open categories
        All compute nodes are public now
      * add use/trade/deposit category
      * do not use the same title for 2 categories
      * Add trade condition type categories.
        This will be used to automatically select a Trade Condition in slapos_accounting
      * add invoicing taxable vat categories
      6f11cc66
    • Romain Courteaud's avatar
    • Romain Courteaud's avatar
    • Romain Courteaud's avatar
      slapos_mysql_innodb_catalog: drop not needed related keyes · b930e1ef
      Romain Courteaud authored
      * drop default_or_child_aggregate_reference
      * drop default_or_child_aggregate_uid catalog key
      * drop follow_up_default_or_child_aggregate_uid
      * drop causality_subscription_request_related_uid related key
      b930e1ef
  2. 26 Mar, 2024 5 commits
  3. 25 Mar, 2024 1 commit
    • Rafael Monnerat's avatar
      slapos_cloud: Split edit in 2 · acff4533
      Rafael Monnerat authored
        This is required due interacton workflow call on _setAlloctionScope.
      
        We could change the capacity_scope to close (so allocation worklfow order dont matter, but
        it would change the expected behaviour if we drop the interaction workflow, so it is more
        reasonable keep the existing behaviour unchanged.
      acff4533
  4. 23 Mar, 2024 1 commit
  5. 22 Mar, 2024 6 commits
  6. 19 Mar, 2024 7 commits