From e1abe5be40dae4342059d8c035fd82003f7fa863 Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 6 Aug 2023 13:49:29 +0200 Subject: [PATCH] Added docs on the panel plugin example (#5402) * added docu and image for panel plugin example * format --- .../assets/images/plugin/plugin_dataflow.png | Bin 0 -> 27084 bytes docs/docs/extend/plugins/panel.md | 28 +++++++++--------- 2 files changed, 14 insertions(+), 14 deletions(-) create mode 100644 docs/docs/assets/images/plugin/plugin_dataflow.png diff --git a/docs/docs/assets/images/plugin/plugin_dataflow.png b/docs/docs/assets/images/plugin/plugin_dataflow.png new file mode 100644 index 0000000000000000000000000000000000000000..7b14aedba3a10da5266c94e6aec493e682b3de9a GIT binary patch literal 27084 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\d+)/', self.TransferCart, name='get-cart') ] #---------------------------------------------------------------------------- - def GetCart(self,request): + def TransferCart(self,request,pk): - print('User:',request.user) + print('User,pk:',request.user,pk) self.value=self.value+1 return HttpResponse(f'OK') - - ``` The code is simple and really stripped down to the minimum. In the plugin class we first define the plugin metadata. Afterwards we define the custom panel. Here we use a html template to describe the content of the panel. We need to add the path here because the template resides in the subdirectory templates/mouser. Then we setup the url. This is important. The url connects the http request with the function to be executed. +May be it is worth to leave a few more words on this because the string looks a bit like white noise. +*transfercart* is the url which can be chosen freely. The ? is well known for parameters. In this case we +get just one parameter, the orders primary key.* \d+* is a regular expression that limits the parameters +to a digital number with n digits. Let's have a look on the names and how they belong together: - * mouser/getcart: Path of the url together with SLUG - * self.GetCart: This is the function to be called. It is defined further down - * get-cart: This is the name of the url that needs to be referenced in the html template. We see that later. +{% with id="plugin_dataflow", url="plugin/plugin_dataflow.png", description="Dataflow between Javescript and Python" %} {% include "img.html" %} {% endwith %} Finally we define the function. This is a simple increment of a class value. - -New lets have a look at the template file mouser.html +Now lets have a look at the template file mouser.html ```html {% raw %} @@ -132,7 +132,7 @@ New lets have a look at the template file mouser.html @@ -149,7 +149,7 @@ async function JGetCart(){ We start with a bit of javascript. The function JGetCart just calls the url that has been defined in the python code above. The url consists of a full path `plugin:plugin-name:url-name`. The plugin-name is the SLUG that was defined in the plugin code. -Then just a reload. +order.pk is the parameter that is passed to python. The button is defined with `class="btn btn-info` This is an InvenTree predefined button. There a are lots of others available. Here are some examples of available colors: