Description
Integral Community Exchange System (IntegralCES or ICES in short) is a suite of modules featuring social currencies (also called local, alternative or complemntary currencies) management for communities. It is an open-source alternative to the widely used but now outdated Community Exchange System.
Concretely IntegralCES is a set of different modules for different specific features:
- ces_bank: It is the main module: the banking or accounting module. It supports different currencies and exchanges between them. It features account debit and credit limits and exchange administration. A single user can have one or more accounts in the different exchanges.
- ces_summaryblock: It is a simple dupal block resuming your state in the exchange network.
- ces_offerswants: It is a very simple offers and wants module integrated to the banking module.
- ces_blog: It is a very simple module featuring a dedicated blog for each exchange.
- ces_statistics: It offers statistical views for data from ces_bank module.
- ces_notify: It helps with the messages due to transactions or other events.
- ces_user: It adds some fields to the drupal user entity needed to identify the seller or buyer within the exchange community.
- ces_import4ces: Imports data from the CES software, from the CSV files it provides.
This project is a community effort from the Cooperativa Integral Catalana and Ecoxarxes from Catalonia (Spain), a federated set of alternative currency communities.
Links
Drupal project page: https://drupal.org/sandbox/esteve/1367140
Source code: git clone --branch 7.x-1.x http://git.drupal.org/sandbox/esteve/1367140.git ices
Site page: https://www.integralces.net
Demo page: https://demo.integralces.net
Code review: http://pareview.sh/pareview/httpgitdrupalorgsandboxesteve1367140git
Observations
- This is a somewhat big and complex project. If you are interested in this project and you want to help us having a better and bug-free code, you are very welcome! If you just want to post the output of the coder module and get a bonus point for your project to be reviewed, please don't waste your and our precious time :)
- About pareview.sh: We have not finded in any documentation that the names of sub-modules have to be prefixed with the name of the parent module. We think they are simply false positives in pareview.
- We specially need the project to be a full one to be able to benefit from the drupal.org translation and continuous integration services. Also it would be easier to install for new communities if it becomes full project.
- This project is currently in production at www.integralces.net with a few thousands of users.
Comment | File | Size | Author |
---|---|---|---|
#11 | ices_codesniffer_results.txt | 4.48 KB | rob.barnett |
Comments
Comment #1
esteve.badia CreditAttribution: esteve.badia commentedComment #2
Botto CreditAttribution: Botto commentedComment #3
PA robot CreditAttribution: PA robot commentedWe are currently quite busy with all the project applications and we prefer projects with a review bonus. Please help reviewing and put yourself on the high priority list, then we will take a look at your project right away :-)
Also, you should get your friends, colleagues or other community members involved to review this application. Let them go through the review checklist and post a comment that sets this issue to "needs work" (they found some problems with the project) or "reviewed & tested by the community" (they found no major flaws).
I'm a robot and this is an automated message from Project Applications Scraper.
Comment #4
XaviP CreditAttribution: XaviP commentedCommited changes in ces_statistics submodule. Now the jqPlot libraries are included using libraries API. See:
http://drupalcode.org/sandbox/esteve/1367140.git/commit/0c0dcdd
Thanks botto!
Comment #5
esteve.badia CreditAttribution: esteve.badia commentedBotto:
Thanks @Botto for take a look into the code!
Comment #6
XaviP CreditAttribution: XaviP commentedHi, esteve.badia
No dependencies are needed. I code it with hook_library and drupal_add_library, which are both in core:
https://api.drupal.org/api/drupal/modules!system!system.api.php/function...
https://api.drupal.org/api/drupal/includes!common.inc/function/drupal_ad...
We can see in http://www.jqplot.com/info.php that jqPlot is GPL2 licensed:
In statistics module, the jqPlot's url is in code, as a recognition.
I hope everybody is happy with this solution.
Comment #7
esteve.badia CreditAttribution: esteve.badia commentedOk, I misunderstood the solution about the libraries! Thanks again!
Comment #8
Botto CreditAttribution: Botto commentedThe pareview.sh mostly looks like just coding standards. Ignoring the top half complaining about the module naming.
You can get a lot of the same output using https://drupal.org/project/drupalpractice which will be better for local debugging.
Comment #9
edumag CreditAttribution: edumag commentedCorrected problems indicating pareview
Now we have a good clean code on branch 7.x-1.x
We have separate libraries jqplot and added instructions to install.
Thanks to our friend pareview
Comment #10
rob.barnett CreditAttribution: rob.barnett commentedesteve.badia,
This looks like a great suite of modules. Some issues I found:
Automated Review:
You should run your code through Code Sniffer. It found several errors and warnings (see attached).
Manual Review:
You may want to use module_load_include() in place of require_once()
In ices.module ices_preprocess_page() why do you do have global $user and then $user = user_load($user->uid)?
In your install file you should uninstall all variables as well.
Consider adding configure to your .info for admin pages.
Your javascript should use Drupal.behaviors.behavior_name instead of $(document).ready(function()
Comment #11
rob.barnett CreditAttribution: rob.barnett commentedI forgot to include the codesniffer results (attached).
Comment #12
XaviP CreditAttribution: XaviP commentedTwo hurley's issues fixed:
Duplicate call to get $user in ices_preprocess_page()
Javascript should use Drupal.behaviors in ces_statistics
Comment #13
davidam CreditAttribution: davidam commentedHello,
I've a fresh installation from git. I've added two posts to the blog, but the message is "There are no blog posts yet.".
Thanks for the efforts.
Comment #14
XaviP CreditAttribution: XaviP commentedHi davidam,
Have you created a new exchange? If not, please follow the ices help link in modules list to proceed.
The blog is a submodule you have to enable and every blog is specific for each exchange group, so each exchange group administrator can access to create blog posts of the excange through the navigation menu (Administration>Post)
You can see an example logining as administrator (user Riemann or Fermat) in the demo site:
https://demo.integralces.net
Please, feedback if this is not a good enough explanation, or if it doesn't work as dessigned.
Thanks
Comment #15
davidam CreditAttribution: davidam commentedI've all submodules enables. Now, I've created a new exchange, then I create a new post and the result is the same "There are no blog posts yet."
Comment #16
XaviP CreditAttribution: XaviP commentedHi davidam,
I've created a better explanation in ices help for creating the first exchange group
- Visit new exchange form (ces/bank/exchange/new) and initialize the first exchange group. You must fill in the Administrator section with the user that will be the exchange administrator (It cannot be the current drupal admin).
- Visit admin exchanges page (ces/admin/ces) , click on the new exchange and activate it.
- Login as exchange administrator and write some welcome blog posts.
(issue https://www.drupal.org/node/2332209)
Thank you!
Comment #17
davidam CreditAttribution: davidam commentedI've installed ices again, I've found an error
You must include i18n_string as dependency in some submodule, or in ices.info.
In the second step Visit admin exchanges page:
Finally, trying node/add found a white screen of death. Disabling ices node/add is ok.
Comment #18
XaviP CreditAttribution: XaviP commentedHi davidam,
IntegralCES doesn't need i18n nor example as dependencies.
Maybe your drupal core installation is not clean? Or maybe cleaning cache is necessary?
Look where your errors point:
sites/all/modules/contrib/i18n
sites/all/modules/contrib/examples
These are not ices module errors. Sorry.
About accessing to node/add, we've reopen this issue:
https://www.drupal.org/node/2208065
It seems a drupal bug (https://www.drupal.org/node/647064), but we will review again to be sure.
Comment #19
HongPong CreditAttribution: HongPong commentedI think the module is pretty well ready to go into full module status, if code linter is reasonably clean. I've seen plenty of modules approved that were essentially stubs, whereas this one is already live in the world. If #647064: Fatal error: Unsupported operand types when menu_links query returns no results in system_admin_menu_block() related longstanding bug is causing the issue #2208065: Error accessing /node/add, perhaps it could be caught better. However I don't think there are actually any blockers to a full approval right now. Thanks for all the help refining this important project everyone :)
Comment #20
XaviP CreditAttribution: XaviP commentedIssue #2208065 Error accessing /node/add solved
Comment #21
XaviP CreditAttribution: XaviP commentedAs commented in #10 by hurley, added config in ces_bank.info to administer exchanges and accounts:
Issue #2345469: Adding configure to ces_bank.info for admin exchanges
Comment #22
davidam CreditAttribution: davidam commentedAnother task is improve the README with the template: https://www.drupal.org/node/2181737
Comment #23
XaviP CreditAttribution: XaviP commenteddavidam,
There's an entire folder (/docs) with documentation (doxygen). We are working on translations.
Also, you can see all this documentation in https://docs.integralces.net/dox
salut!
Comment #24
esteve.badia CreditAttribution: esteve.badia commentedComment #25
esteve.badia CreditAttribution: esteve.badia commentedComment #26
davidam CreditAttribution: davidam commentedNow, I've a little more time to make the review.
Automated Review
There are a lot of errors for pareview.sh today:
http://pareview.sh/pareview/httpgitdrupalorgsandboxesteve1367140git
Manual Review
Individual user account
Yes: Follows the guidelines for individual user accounts.
No duplication
Yes: Follows the guidelines for individual user accounts.
Master Branch
Yes: Follows the guidelines for master branch.
Licensing
No: IMHO you must add LICENSE.txt. See Licensing FAQ.
3rd party code
Yes: Follows the guidelines for 3rd party code.
Coding style & Drupal API usage
1. The CES setting could be linked from admin/config.
2. The url ces/bank/exchange/limitchain is not directly editable by admin.
3. The url ces/admin/account/new and ces/admin/limit/new returns a white page.
4. In ces/admin/ces could appears a link to add exchange requests
Comment #27
PA robot CreditAttribution: PA robot commentedClosing due to lack of activity. If you are still working on this application, you should fix all known problems and then set the status to "Needs review". (See also the project application workflow).
I'm a robot and this is an automated message from Project Applications Scraper.
Comment #28
XaviP CreditAttribution: XaviP commentedComment #29
XaviP CreditAttribution: XaviP commentedComment #30
XaviP CreditAttribution: XaviP commentedComment #31
matslats CreditAttribution: matslats commentedI'm familiar with this project though I haven't looked at the code recently. It has a few man-years work done already, and it needs to be a full project.
Comment #32
esteve.badia CreditAttribution: esteve.badia commentedThanks @matslats, I appreciate very much your trust in the project!
Comment #33
kscheirerComment #34
kscheirer@esteve.badia: We can promote this single project manually to a full project for you if that's what you would prefer. Otherwise this queue is for granting users "git vetted user" status - can you give some direction on which code we can evaluate for you? We cannot grant "git vetted user" status based on contributions by others.
Comment #35
esteve.badia CreditAttribution: esteve.badia commented@kscheirer: You can check, for example, the submodule ces_interop inside this ices project, that has been exclusively written by me (It can be verified via git). I have no other Drupal public projects besides "ices" and the ad-hoc theme for this project "greences", which has also contributions from others.
But anyway it is ok if you can manually promote this single project, since this is what I am (and the small community supporting the project are) most interested in.
Thanks!
Comment #36
kscheirerReview for ces_interop
Looks pretty good to me. Assigning to klausi as he may have time for a final review.
Comment #37
esteve.badia CreditAttribution: esteve.badia commented@kscheirer: Thanks for the comments!
Comment #38
klausi@kscheirer: ces_interop_opentransact(): Since the $_POST values are not printed to HTML here I see no XSS vulnerability there, so that usage should be fine.
Comment #39
kscheirerThanks for the extra review klausi!
Thanks for your contribution, esteve.badia!
I updated your account so you can promote this to a full project and also create new projects as either a sandbox or a "full" project.
Here are some recommended readings to help with excellent maintainership:
You can find lots more contributors chatting on IRC in #drupal-contribute. So, come hang out and stay involved!
Thanks, also, for your patience with the review process. Anyone is welcome to participate in the review process. Please consider reviewing other projects that are pending review. I encourage you to learn more about that process and join the group of reviewers.
Thanks to the dedicated reviewer(s) as well.
Comment #40
esteve.badia CreditAttribution: esteve.badia commentedWe are very grateful to all reviewers for your time, insights and confidence, from me and the other folks in the development team :)