-
-
Notifications
You must be signed in to change notification settings - Fork 431
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature Request : Enabling Plugins , Donation as a Plugin, Refractor for TalawaPluginProvider Widget #1346
Labels
Comments
SiddheshKukade
changed the title
Feature Request : Plugin Architecture Implementation for Talawa (Features as Plugins)
Feature Request : [Feature Request] : Enabling Plugins , Donation as a Plugin, Refractor for TalawaPluginProvider Widget
Sep 2, 2022
SiddheshKukade
changed the title
Feature Request : [Feature Request] : Enabling Plugins , Donation as a Plugin, Refractor for TalawaPluginProvider Widget
Feature Request : Enabling Plugins , Donation as a Plugin, Refractor for TalawaPluginProvider Widget
Sep 2, 2022
palisadoes
pushed a commit
that referenced
this issue
Oct 18, 2022
…fractor for TalawaPluginProvider Widget (#1355) * Create .gitpod.yml * Create .gitpod.Dockerfile * Add/temp-file * Add/temp-plugin gives sample demo for `TalawaPluginProvider ` * remove/unecessary-files#1 * remove/unecessary-files#2 * Add/TalwaPluginProvider * Add/queries `getPluginsList` * Docs for 'TalawaPluginProvider' * `Add/fetch_plugin_list` * Refractoring & adding `fetchPlugins` in main * Delete sa.dart * Delete tempPlugin.dart * Test/ `Tawla Plugin Provider` * Refractor : Added `Braintree` config in AndroidManifest.xml * Refractor : Added `Talawa_plugin_provider_nav` to control plugins visibility in navbar * Update : Main file setState fix * Changed ios version from `10.0` to `12.0` * Add : `Donation` feature as Plugin with braintree API * Add : `createDonation` Mutation * Fix : `Plugin` render bug * Chores : Formatted files * Add : `navBarItems` (features) as plugins * Chores : Formatting * Update : Profile removed key * Chores : Add `Flutter_Braintree` * Chores : Fix `Lint errors` * Fix : Formatting Errors * Delete talawa_plugin_provider_nav.dart * Update pull-request.yml * Added a empty line in main * Update pull-request.yml * Fix : Faling tests * Fix : Failing test #2 commented out `teste.pumpAndSetttle` * Remove : all the changes done in the `custom_drawer_test.dart` Removed everthing that I've added to check if it will pass the test or not. * PR Fail Fix Attempt #1 : Added `fetchPluginLIst` in `main.dart` * PR Fail Fix Attempt #2 : Commenting test cases to check furthur problems * Chores : Commented Imports * Deleted : Test file * Fix: Trigger workflow * Add : Faling test back `custom_drawer_test.dart` * Add Test for `utils/query.dart` * Add : Tests `queries_test.dart` * Add : Tests `chat_queries_test.dart` * Add : Test for `comment_queries_test.dart` * Add : test for `event_queries_test` * Add : test for `post_qurie..dart` * Add : test for `post_query.dart` * Add : test for `task_queries.dart` * Add : test for `utils/validator.dart` * Fix : failing tests * Test : Failing test uncommented `custom_drawer_test.dart` * Fix : Commented `custom_drawer_test.dart` * removed utils tests * Removed Commented Code
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This issue is associated with Google Summer of Code 2022 Project link
Work in Progress : Details to be added soon
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is.
Describe the solution you'd like
TalawaPluginProvider
Class2, Making the scope of the Plugins organization wide
Describe alternatives you've considered
Alternatives can be suggested by mentors and reviewers
Approach to be followed (optional)
1. Donation feature as a plugin
Problem :
Currently the donation feature in the talawa app is not functional and also not implemented as a plugin so that the admins can't control it's visibility
Solution :
Donation UI must be implemented as a plugin in order control it's visibility across the organization in the talwa app by the talawa-admin panel. Donations feature should be implemented by using payment pacakges like
flutter braintree
etc.Approach :
TalawaPluginProvider
Widget (to enable as plugin)flutter_braintree
package (https://pub.dev/packages/flutter_braintree)More on braintree : https://www.braintreepayments.com/about-braintree
2. Plugin architecture in the Navbar :
Problem : The main features of the talawa app are Events, Posts , etc. These features are not implemented as plugins which means that admin can't control whether to enable these features in the org or not.
We need some solution to implement it as a plugin
Solution :
Implement a mechanism to control visibility of those main features
Approach :
The main feature of the talawa app are only accessible from the navbar of the app So, to implement them as plugin we have to :
TalwaPluginProviderNav
that will be used for wrapping around theses navbar items.TalwaPluginProvider
will make sure to only show those components that are installed for that org onlyPlugin
has installed in the Organization by the admin then some of it's property should be likea. The
TalawaPluginProviderNav
will make sure that these properties are valid and then and only then it will insert that items in the flutter UI tree for that navbarb. Specific Icons for specific features are need to be specified already in a Object called as
insert-here
and then the Icons would also be dynamically rendered according to visibility of those features as pluginsc. The
visible
property of the navbar items can be set totrue
for development purposes . If true the features will be visible and accessible in the organization even if they are not installed for that organization (use this for development only)3. Fixing how the components are rendered using
TalawaPluginProvider
Problem :
TalawaPluginProvider
widget is used for implementing features as plugins. It usesVisiblity
widget to control the visibility of the UI that It is wrapped over.Visiblity
widget have some a issue that it does not remove that component from the Flutter UI tree . This can create some bugs in the future and needs to be resolvedSolution :
We should directly return the componet instead of wrapping it in
Visiblity
ComponentApproach :
Replace the
Visibility
widget by an empty Container() widget.Additional context
Will be added soon.
The text was updated successfully, but these errors were encountered: