A simpler way to view django projects
everything working, gonna get back to other projects
1 file changed, +15 -5
+15-5src/providers/project.ts
| @@ -1,5 +1,5 @@ | ||
| 1 | 1 | import * as vscode from "vscode"; |
| 2 | -import DjangoProject, { Model } from "../project"; | |
| 2 | +import DjangoProject, { App, Model } from "../project"; | |
| 3 | 3 | |
| 4 | 4 | export default class ProjectDataProvider |
| 5 | 5 | implements vscode.TreeDataProvider<vscode.TreeItem> |
| @@ -9,7 +9,6 @@ export default class ProjectDataProvider | ||
| 9 | 9 | project?: DjangoProject; |
| 10 | 10 | |
| 11 | 11 | update(project: DjangoProject) { |
| 12 | - console.log("updating the tree"); | |
| 13 | 12 | this.project = project; |
| 14 | 13 | this._update.fire(); |
| 15 | 14 | } |
| @@ -30,7 +29,11 @@ export default class ProjectDataProvider | ||
| 30 | 29 | return Promise.resolve(items); |
| 31 | 30 | } else if (element.contextValue?.includes("-app")) { |
| 32 | 31 | const appName = element.contextValue.split("-")[0]; |
| 33 | - return Promise.resolve([this.createModelsTreeItem(appName)]); | |
| 32 | + const app = this.project.apps.get(appName); | |
| 33 | + if (!app) { | |
| 34 | + return Promise.resolve([]); | |
| 35 | + } | |
| 36 | + return Promise.resolve([this.createModelsTreeItem(app)]); | |
| 34 | 37 | } else if (element.contextValue?.includes("-models")) { |
| 35 | 38 | const appName = element.contextValue.split("-")[0]; |
| 36 | 39 | const app = this.project.apps.get(appName); |
| @@ -75,15 +78,22 @@ export default class ProjectDataProvider | ||
| 75 | 78 | command: "django-overview.openFile", |
| 76 | 79 | title: "Open File", |
| 77 | 80 | arguments: [model.filename, model.index], |
| 81 | + tooltip: `Go to ${model.name}`, | |
| 78 | 82 | }; |
| 79 | 83 | return treeItem; |
| 80 | 84 | } |
| 81 | 85 | |
| 82 | - private createModelsTreeItem(appName: string): vscode.TreeItem { | |
| 86 | + private createModelsTreeItem(app: App): vscode.TreeItem { | |
| 83 | 87 | const treeItem = new vscode.TreeItem("Models"); |
| 84 | - treeItem.contextValue = `${appName}-models`; | |
| 88 | + treeItem.contextValue = `${app.name}-models`; | |
| 85 | 89 | treeItem.collapsibleState = vscode.TreeItemCollapsibleState.Collapsed; |
| 86 | 90 | treeItem.iconPath = new vscode.ThemeIcon("database"); |
| 91 | + treeItem.command = { | |
| 92 | + command: "django-overview.openFile", | |
| 93 | + title: "Open File", | |
| 94 | + arguments: [`${app.path}/models.py`, 0], | |
| 95 | + tooltip: "Open models.py", | |
| 96 | + }; | |
| 87 | 97 | return treeItem; |
| 88 | 98 | } |
| 89 | 99 |