Re: pgAdmin4 - help adding new node to Browser Tree

From: Aditya Toshniwal <aditya(dot)toshniwal(at)enterprisedb(dot)com>
To: Warren Chan <wchan_syd(at)yahoo(dot)com(dot)au>
Cc: "pgadmin-hackers(at)lists(dot)postgresql(dot)org" <pgadmin-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: pgAdmin4 - help adding new node to Browser Tree
Date: 2020-09-03 04:43:09
Message-ID: CAM9w-_=Wg++A8yXa50dFJCJE-ZDG=-fJJ_mjThP5zUm=s=4ddg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

Hi Warren,

The patch works fine, just that replacing sequences with foos was missing
at 1-2 places. I guess you've not restarted the dev server after the
changes. :)
- Always restart the backend dev server if there is any change in Python or
any template files.
- You can run webpack in continuous watch mode with yarn run bundle:dev
--watch. Always empty cache reload if there is any change in JS files. You
can enable chrome dev tools and right click on the refresh button to get
the option.

Here's what I've changed in your patch:

*diff --git
a/web/pgadmin/browser/server_groups/servers/databases/schemas/foos/__init__.py
b/web/pgadmin/browser/server_groups/servers/databases/schemas/foos/__init__.py*

*index 3bc310d6f..52de71f0b 100644*

*---
a/web/pgadmin/browser/server_groups/servers/databases/schemas/foos/__init__.py*

*+++
b/web/pgadmin/browser/server_groups/servers/databases/schemas/foos/__init__.py*

@@ -141,7 +141,7 @@ class FooView(PGChildNodeView, SchemaDiffObjectCompare):

if self.manager.db_info is not None and \

kwargs['did'] in self.manager.db_info else 0

- self.template_path = 'sequences/sql/#{0}#'.format(

+ self.template_path = 'foos/sql/#{0}#'.format(

self.manager.version

)

self.acl = ['r', 'w', 'U']

*diff --git
a/web/pgadmin/browser/server_groups/servers/databases/schemas/foos/templates/foos/sql/default/stats.sql
b/web/pgadmin/browser/server_groups/servers/databases/schemas/foos/templates/foos/sql/default/stats.sql*

*index cd9b0154a..91a2f9259 100644*

*---
a/web/pgadmin/browser/server_groups/servers/databases/schemas/foos/templates/foos/sql/default/stats.sql*

*+++
b/web/pgadmin/browser/server_groups/servers/databases/schemas/foos/templates/foos/sql/default/stats.sql*

@@ -4,4 +4,4 @@ SELECT

FROM

pg_statio_all_sequences

WHERE

- relid = {{ seid }}::OID

\ No newline at end of file

+ relid = {{ fooid }}::OID

On Thu, Sep 3, 2020 at 8:29 AM Warren Chan <wchan_syd(at)yahoo(dot)com(dot)au> wrote:

> Hi Aditya,
>
> thanks for helping, really appreciate you taking the time.
>
> I've attached a patch as requested and yes, when i expand the new Foo node
> I've created, I get the following errors in the console:
>
> 2020-09-03 12:50:37,291: ERROR flask.app: 404 Not Found: The
> requested URL was not found on the server. If you entered the URL manually
> please check your spelling and try again.
> Traceback (most recent call last):
> File "C:\git\pgadmin4\pgadmin4\lib\site-packages\flask\app.py", line
> 1813, in full_dispatch_request
> rv = self.dispatch_request()
> File "C:\git\pgadmin4\pgadmin4\lib\site-packages\flask\app.py", line
> 1791, in dispatch_request
> self.raise_routing_exception(req)
> File "C:\git\pgadmin4\pgadmin4\lib\site-packages\flask\app.py", line
> 1774, in raise_routing_exception
> raise request.routing_exception
> File "C:\git\pgadmin4\pgadmin4\lib\site-packages\flask\ctx.py", line
> 336, in match_request
> self.url_adapter.match(return_rule=True)
> File "C:\git\pgadmin4\pgadmin4\lib\site-packages\werkzeug\routing.py",
> line 1945, in match
> raise NotFound()
> werkzeug.exceptions.NotFound: 404 Not Found: The requested URL was not
> found on the server. If you entered the URL manually please check your
> spelling and try again.
> 2020-09-03 12:50:37,372: ERROR flask.app: 404 Not Found: The
> requested URL was not found on the server. If you entered the URL manually
> please check your spelling and try again.
> Traceback (most recent call last):
> File "C:\git\pgadmin4\pgadmin4\lib\site-packages\flask\app.py", line
> 1813, in full_dispatch_request
> rv = self.dispatch_request()
> File "C:\git\pgadmin4\pgadmin4\lib\site-packages\flask\app.py", line
> 1791, in dispatch_request
> self.raise_routing_exception(req)
> File "C:\git\pgadmin4\pgadmin4\lib\site-packages\flask\app.py", line
> 1774, in raise_routing_exception
> raise request.routing_exception
> File "C:\git\pgadmin4\pgadmin4\lib\site-packages\flask\ctx.py", line
> 336, in match_request
> self.url_adapter.match(return_rule=True)
> File "C:\git\pgadmin4\pgadmin4\lib\site-packages\werkzeug\routing.py",
> line 1945, in match
> raise NotFound()
> werkzeug.exceptions.NotFound: 404 Not Found: The requested URL was not
> found on the server. If you entered the URL manually please check your
> spelling and try again.
>
> Please let me know if you need anything else.
>
> Best Regards,
> Warren Chan
> On Wednesday, 2 September 2020, 6:19:59 pm AEST, Aditya Toshniwal <
> aditya(dot)toshniwal(at)enterprisedb(dot)com> wrote:
>
>
> Hi Warren,
>
> Can you check the browser console if any errors ? Can you also share the
> patch so that I can help you further by debugging at my end ?
>
> On Wed, Sep 2, 2020 at 9:51 AM Warren Chan <wchan_syd(at)yahoo(dot)com(dot)au> wrote:
>
> Hi,
>
> I'm trying to learn about the pgAdmin4 project and am hoping to make some
> contributions sometime in the future.
>
> I'm new to Flask and python but am keen to learn.
>
> While trying to familiarize myself with the application and the way it
> works, I've tried to create a 'test' node under the schema node, I want to
> list test items under this node - not listing anything particular at the
> moment but wanted to get an understanding of how the application ties
> together). In order to just get a new node added under schema, I've
> copied the sequence folder under
> \web\pgadmin\browser\server_groups\servers\databases\schemas and renamed
> the applicable folders to tests (I want a test node to appear under schema).
>
> I've updated the \tests\_init_.py file so that the SequenceModule has been
> changed to TestModule (updated the NODE_TYPE etc). I've also updated the
> SequenceView to become TestView and other parts of the view like the
> template path etc.
>
> In addition to this I've changed the name in the
> \tests\static\js\sequence.js file to \tests\static\js\test.js and have
> also updated the test.js file so that any references to sequence has been
> changed to test and have added 'pgadmin.node.tests' to the
> webpack.config.js and 'pgadmin.node.test': path.join(__dirname,
> './pgadmin/browser/server_groups/servers/databases/schemas/tests/static/js/test')
> to the webpack.shim.js file
>
> Doing this I was hoping that a new 'Test' node would appear under the
> schema directory and opening this node, would render all the sequences (as
> I haven't changed any of the sql). However I only get the new 'Test' node
> being rendered, and when I open this, I get a Server Node with the server
> I'm connected to being added, not the list of sequences I was hoping for.
>
> Is there an additional setting / steps I need to add somewhere in order to
> get the TestView to render under the TestModule node?
>
> I'd appreciate any pointers to get this working as the next thing I'd
> like, would be to start modifying the sql and getting different database
> objects being listed.
>
> Best regards,
> Warren Chan
>
>
>
>
> --
> Thanks,
> Aditya Toshniwal
> pgAdmin hacker | Sr. Software Engineer | *edbpostgres.com*
> <http://edbpostgres.com>
> "Don't Complain about Heat, Plant a TREE"
>

--
Thanks,
Aditya Toshniwal
pgAdmin hacker | Sr. Software Engineer | *edbpostgres.com*
<http://edbpostgres.com>
"Don't Complain about Heat, Plant a TREE"

In response to

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message Warren Chan 2020-09-03 05:44:25 Re: pgAdmin4 - help adding new node to Browser Tree
Previous Message Warren Chan 2020-09-03 02:59:31 Re: pgAdmin4 - help adding new node to Browser Tree