Giter Site home page Giter Site logo

anitab-org / portal Goto Github PK

View Code? Open in Web Editor NEW
69.0 24.0 209.0 35.5 MB

THIS PROJECT IS ARCHIVED. Systers Portal for communities.

License: GNU General Public License v2.0

Python 81.58% HTML 15.83% CSS 1.61% JavaScript 0.90% Dockerfile 0.04% Shell 0.04%
python django html css javascript systers postgresql hacktoberfest

portal's Introduction

Systers Portal Build Status Coverage Status project chat

Systers Portal is for Systers communities to post and share information within and with other communities.

Website: http://portal.systers.org

Project page: https://anitab-org.github.io/portal/

If you are interested in learning more about this project, start with reading Portal GitHub Wiki.

Setup for developers (Unix)

  1. Make sure you have installed Python 3.6, pip3 and virtualenv.

  2. If working behind a proxy, make sure your environment variables are properly set up. If you still get an error due to proxy, use "-E" flag along with "sudo" to export all the environment variables.

  3. Make sure you have python3-dev installed on your operating system. For Debian, you would additionally require libpq-dev. Install by using sudo apt-get install libpq-dev python3-dev

  4. Make sure you have PostgreSQL installed. For a tutorial on installing Postgres, Django Girls' ebook, Tutorials Extension, is a reference. The info is also on Django Girls GitHub repository.

  5. Clone the repo - git clone https://github.com/systers/portal.git and cd into the portal directory. If working behind a proxy, follow the instructions here.

  6. Create a virtual environment with Python 3 and install dependencies:

    $ virtualenv venv --python=/path/to/python3
    $ source venv/bin/activate
    $ pip install -r requirements/dev.txt
    $ sudo apt-get install python-gdal
  7. Create systersdb database, where systersdb might be any suitable name [Password should not be empty].

    $ sudo -i -u postgres
    $ createuser <any name e.g. alice> --pwprompt
    $ psql
    $ CREATE DATABASE systersdb;
    $ \c systersdb;
    $ GRANT ALL PRIVILEGES ON DATABASE systersdb to <the name>;
    
  8. Rename .env.example to .env.

  9. Update the values in the .env file with the corresponding values like below.

  • Open the .env file

    SECRET_KEY = <your-secret-key>
    DEBUG = True
    ALLOWED_HOSTS = *
    
    # Database settings
    
    DB_NAME = systersdb
    DB_USER = <your-database-username>
    DB_PASSWORD = <your-database-password>
    DB_HOST = localhost
    DB_PORT = 5432
    
    # Email settings (Optional)
    
    EMAIL_HOST = localhost
    EMAIL_PORT = 1025
    
    # External APIs (Optional)
    
    GOOGLE_MAPS_API_KEY = <your-google-maps-api-key>
    ZOOM_API_KEY = <your-zoom-api-key>
    ZOOM_API_SECRET = <your-zoom-api-secret-key>
    ZOOM_USER_ID = <your-zoom-user-id>   
    
  1. Run python systers_portal/manage.py migrate.
  2. Run python systers_portal/manage.py cities_light for downloading and importing data for django-cities-light.
  3. Run python systers_portal/manage.py createsuperuser to create a superuser for the admin panel. Fill in the details asked.
  4. Run python systers_portal/manage.py runserver to start the development server. When in testing or production, feed the respective settings file from the command line, e.g. for testing python systers_portal/manage.py runserver --settings=systers_portal.settings.testing.
  5. Before commiting run flake8 systers_portal and fix PEP8 warnings.
  6. Run python systers_portal/manage.py test --settings=systers_portal.settings.testing to run all the tests.

If you face some issues while installing and making Portal up in your local, have a look at issues labelled as While Setting up Portal.

Setup for developers (Windows)

  1. Make sure you have installed Python 3.6, make sure you the right one (32/64 bits). Source. During installation please pay attention to the following details :
  • Tick/Select Add Python 3.6 to PATH
  • Select Customize Installation (this is important)
  • Tick/Select pip (others, leave as default), this is important
  • Tick install for all users
  • Tick add Python to environment variables
  • Tick create shortcuts for installed applications
  • Precomplie standard libary
  • Select install location and hit install
  1. Run pip install virtualenv using windows command line

  2. You would have to install PostgreSQL. Download from official location or alternative location, you could lookup some PostgreSQL tutorials online if you are completely blank on this.

  3. Clone the repo - git clone https://github.com/systers/portal.git and cd into the portal directory. Use git CMD or git Bash(unix-like terminal) to do so.

  4. Create a virtual environment with Python 3 and install dependencies, using CMD :

    $ virtualenv venv
    $ .\venv\Scripts\activate
    $ pip install -r requirements/dev.txt 
  5. Make sure you have GDAL installed.

  • Download OSGeo4W using the OSGeo4W installer
  • Specifically, install pkg-gdal-python, which is within 'Libs' in the installer tree.
  • Add GDAL_LIBRARY_PATH in the systers_portal/settings/base.py and make sure the path points to the GDAL Library on your local machine.
  1. Create systersdb database, where systersdb might be any suitable name.
  • Open the SQL Shell for postgresql from the windows start menu or wherever accessible

    $ Server [localhost]:  Just press enter, leave this empty
    $ Database [postgres]: Just press enter, leave this empty
    $ Port [5432]: This is the default port just press enter, leave this empty
    $ Username [postgres]: This is the default username just press enter, leave this empty
    $ Password for user postgres: Input password you created during installation and press enter
    $ CREATE USER <anyname you want e.g systers> WITH PASSWORD 'your password';
    $ CREATE DATABASE systersdb;
    $ \c systersdb;
    $ GRANT ALL PRIVILEGES ON systersdb TO <username created above>;
    
  1. Rename .env.example to .env.
  2. Update the values in the .env file with the corresponding values like below.
  • Open the .env file

    SECRET_KEY = <your-secret-key>
    DEBUG = True
    ALLOWED_HOSTS = *
    
    # Database settings
    
    DB_NAME = systersdb
    DB_USER = <your-database-username>
    DB_PASSWORD = <your-database-password>
    DB_HOST = localhost
    DB_PORT = 5432
    
    # Email settings (Optional)
    
    EMAIL_HOST = localhost
    EMAIL_PORT = 1025
    
    # External APIs (Optional)
    
    GOOGLE_MAPS_API_KEY = <your-google-maps-api-key>
    ZOOM_API_KEY = <your-zoom-api-key>
    ZOOM_API_SECRET = <your-zoom-api-secret-key>
    ZOOM_USER_ID = <your-zoom-user-id> 
    
  1. Run python systers_portal/manage.py migrate.
  2. Run python systers_portal/manage.py cities_light for downloading and importing data for django-cities-light.
  3. Run python systers_portal/manage.py createsuperuser to create a superuser for the admin panel. Fill in the details asked.
  4. Run python systers_portal/manage.py runserver to start the development server. When in testing or production, feed the respective settings file from the command line, e.g. for testing python systers_portal/manage.py runserver --settings=systers_portal.settings.testing.
  5. Before commiting run flake8 systers_portal and fix PEP8 warnings.
  6. Run python systers_portal/manage.py test --settings=systers_portal.settings.testing to run all the tests.

Congratulations! you just set up the Systers Portal on you windows dev enviroment. If you face any issues while installing and making Portal up in your local, have a look at issues labelled as While Setting up Portal.

Run Portal in a Docker container

If you wish to view a sneak peek of the Systers Portal, you may use Docker to preview the Portal. Note: The following Docker configuration is not intended to be run in production at the moment. It may be configured to do so in the future.

  1. Install Docker. Follow the installation steps for your specific operating system:
    • Docker runs natively on a Linux-based system.
    • For Windows and Mac OS X, you should follow instructions for installing boot2docker which also installs VirtualBox.
  2. Install docker-compose. Note: fig has been deprecated. Docker-compose replaces fig.
  3. Create a new directory on your local system.
  4. Enter git clone https://github.com/systers/portal.git to clone the Systers Portal repository. After the clone is done, change directory (cd) to the portal directory.
  5. Run docker-compose build. This pulls the Docker images required to run the project and installs the necessary dependencies.
  6. This step will require the Django SECRET_KEY. Run docker run -e SECRET_KEY=foobarbaz portal_web.
  7. Run docker-compose run web python systers_portal/manage.py migrate.
  8. Run docker-compose run web python systers_portal/manage.py cities_light for downloading and importing data for django-cities-light.
  9. Optional: Run docker-compose run web python systers_portal/manage.py createsuperuser if you wish to create a superuser to access the admin panel.
  10. Run docker-compose up to start the webserver for the Django Systers Portal project.
  11. Systers Portal should be running on port 8000.
    • If you are on Linux, enter http://0.0.0.0:8000 in your browser.
    • If you are using boot2docker on Windows or Mac OS X, enter http://192.168.59.103:8000/ in your browser. If this IP address doesn't work, run boot2docker ip from the command line and replace the previous IP address in the HTTP request with the IP returned by boot2docker.

Documentation

Documentation for Systers Portal is generated using Sphinx and available online at http://systers-portal.readthedocs.org/

To build the documentation locally run:

$ cd docs/
$ make html

To view the documentation open the generated index.html file in browser - docs/_build/html/index.html.

For more information on semantics and builds, please refer to the Sphinx official documentation.

You can view the requirements document here.

Contact

You can reach the maintainers and our community on AnitaB.org Open Source Zulip. If you are interested in contributing to portal, we have a dedicated stream for this project #portal, where you can ask questions and interact with the community, join with us!

portal's People

Contributors

abhi20161997 avatar abhishekspeer avatar alma-castant avatar ana-balica avatar daminisatya avatar dependabot-preview[bot] avatar econchick avatar exploreshaifali avatar fenn-cs avatar janiceilene avatar kanika2107 avatar nathalier avatar nik-khandelwal avatar ninjakx avatar payal97 avatar poojithansl avatar prachiagrawal269 avatar ritwickraj78 avatar rosariorobinson avatar saideepesh000 avatar sammy1997 avatar sanketdg avatar satya7289 avatar shriyanka avatar tapaswenipathak avatar todipratik avatar verma-varsha avatar vigzmv avatar willingc avatar yatna avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

portal's Issues

Community Links Not Working

When I am NOT logged in as Systers Keeper, I click on any of the Community links and error "Server Error (500)". I'm checking with our/ABI IT department, but wanted to log it here as well.

"Contact" page

Create "Contact" page. Convey to the general style of the website. Search for information on Systers page (http://anitaborg.org/get-involved/systers/). Provide a contact email or any other details that a user would expect from this page (social channels for example).

Should contain:

  • TemplateView (placed in common app)
  • template
  • url
  • unittest

SSL certificate for our production site

Currently both Portal on http://portal.systers.org and Systers wiki on http://systers.org/systers-dev/doku.php use unencrypted connection even though we send sensitive data over the network (passwords during logins). We need to purchase an SSL certificate and install it on our server (I can do the later part). This way all our traffic will run over https and will be encrypted.

@rosariorobinson Please take a loot at the following issue and if possible redirect to admins.

Add a url to "Transfer ownership" on user profile

Hi @veniemi1
Here is a simple task to get you started. Please comment to this issue to let us know that you are on to it. Also mark checkboxes to let us know that you did this step.

Preparing:

To the code:

  • Start the development server with python systers_portal/manage.py runserver.
  • Go to 127.0.0.1:8000 address in your browser.
  • If you didn't create a superuser, follow point 10 from https://github.com/systers/portal#setup-for-developers. Then go to 127.0.0.1:8000/admin and login with your superuser credentials (username and password).
  • Scroll down to find a section called Community. Click on Communities link, then click on create a new community. Set yourself as the admin of that community. Fill in any dummy data you want for the res of the form.
  • Go back to 127.0.0.1:8000 aka Portal landing page.
  • In the right corner of the top navigation bar you should see your username. This means you have logged in successfully. Click on it and there should be a dropdown there. Click on "Profile". In the "Membership" box you should see the community you have created and a button that says "Transfer ownership".

The issue is that "Transfer ownership" button has no URL and we need to fix this.
In order to fix this, do the following:

  • Open the file portal/systers_portal/templates/users/snippets/membership.html and find the anchor tag (a) that has an empty URL property, in other words href="#".
  • We need to replace the # with a valid URL that will allow the user to transfer the ownership of a community. Therefore instead of #, put {% url 'transfer_ownership' community.slug %}. {% %} are special Django template tags that allow us to execute a set of functions inside the HTML code. url is this function of Django template language that constructs a URL based on its name. transfer_ownership is the name of the URL, we have set it up ourselves before in code. And finally community.slug extracts the slug of the community object. This is necessary to let the function know what community we want to manipulate.

Committing and making a pull request.

"About Us" page

Create the "About Us" page. Convey to the general style of the website. Collect information about Systers community (http://anitaborg.org/get-involved/systers/), Systers mailing lists, maybe find a high-resolution picture with Systers members. The end result should be one or 2 paragraphs that clearly explain what is Systers and what is this website.

Should contain:

  • TemplateView (place in the common app)
  • url
  • unittest
  • template

Separate requirements.txt out

I'd separate the requirements.txt file to one that is needed to run the site, and one that is to develop on the site, e.g. requirements-prod.txt and requirements-dev.txt.

The -prod one would have just what is needed to run the app, and then the -dev one would have a reference to the -prod one PLUS packages needed for testing, for linting, and anything else.

Here's a good article from Heroku

Types error

When I'm on the Systers page or any of the other community pages, I click on the Type on the right to filter resources by those particular types, but ALL types are displayed.

If you are on the BWiC page or Systers community page, then clicking on Type on the right should display all of the Systers types not EVERYONE's type. Currently, this is the case. It is confusing as there are multiple Facebook groups now displayed.

Add tags snippet

Create an HTML snippet for displaying common actions for manipulating tags. As an example, see "Community Actions", "News Actions" snippets. Call the snippet tags_sidebar.html inside systers_portal/templates/blog/snippets.

The snippet should contain 1 action (for the time being) - "Add tag". In HTML you should check if the user is authenticated and active. The snippet should be displayed only when the user has permission to add tags - blog.add_tag. Pay attention that this is not a row-level permission, but rather a typical Django permission.

Include the snippet to appear on news/resources list page and single news/resource page right above the membership button.

Validate your HTML code using w3 validator. Use 2 spaces for HTML.

Footer

The footer is missing 2 things.

[1] should say at the end "an Anita Borg Community" for Systers community page.

[2] For all other communities, it should state "an Anita Borg Systers Community"
e.g. footer should be >> Turkish Women in Computing, an Anita Borg Systers Community

Display community page content

Prerequisites:

  1. Create a superuser from the command line, if you don't have one yet. python systers_portal/manage.py createsuperuser.
  2. Login to the admin panel (http://127.0.0.1:8000/admin) and create a new Community. Also create one or more Community Pages for this new Community.
  3. Go to http://127.0.0.1:8000/community/community_slug/

The task is to display the contents the Community Page below the pills (bootstrap blue elements).

Look into systers_portal/community app. The view that is necessary to update is CommunityPageView. For portal we are using class-based views, so take your time to get familiar with CBV in Django, if you haven't worked with them before. Most probably you will need to override method get_context_data(self, **kwargs) to add CommunityPage object to the context.

Create a new template - systers_portal/templates/community/page.html. It should extend the community base template and change the block title and
community_page_content.

Feel free to adjust the looks using CSS. As reference for good reading text size and style, see news page - http://127.0.0.1:8000/community/systers/news/ (of course, you need to create some news for the community).

Add documentation on how to configure social apps

In #7 4 social account providers are enabled - facebook, github, google and twitter. Most of the providers require the developer to enter a client ID and API secret, more details on that here.

It is necessary to add a page in Sphinx to explain all the necessary steps to enable the login using each social account, that including:

  • registering as a developer
  • creating an app and entering the configuration information
  • obtaining client ID and API secret
  • fill up this data to the systersdb
  • testing social login

This information will be useful as first-time configuration of the app in production and for developers wanting to enable this feature (especially considering that facebook provider throws an Exception on login page if not configured, although other providers don't do that and allow page to render).

Add to README on how to generate docs

Add to README.md on how to generate & view docs (e.g. run sphinx-build -b html source_dir build_dir then open build_dir/index.html).

Also consider hosting docs on readthedocs.org (may need admin setup, let me know if I can help with that as I did it for pyladies-kit on kit.pyladies.org).

New Community Proposal

When submitting a new community proposal, there is no email message sent to administrator. Currently, it does not even update the spreadsheet either.

Remove use of 'django-countries'

Portal used 'django-countries' package to validate countries data in 'users' app. In 'meetup' app it is using 'django-cities-light' package to validate countries, region and cities data. So we can safely exclude 'django_countries' and make use of 'django-cities-light' in 'users' app also.

Navigation

When everyone visits the portal, whether they are logged in or not, no matter if they are admins for other communities (latinas, bwic, etc.), they should land at the Systers home page.

For example
If I am a Syster, AsianWiC and IndianWiC, I should have at the top navigation bar,

Systers | About | Sub-Communities |
| UWiC |
| BWiC |
| LiC |
| LGBT|
| TurkishWiC|
| ArabWiC |
| AsianWiC |
| ChineseWiC |
| FilipinasInC |
| IndianWiC |

404 page

Create a 404.html template, which will be used to show the "Not found" message. It should reside in the templates top level directory. State clear that we didn't find what the user was looking for, allow to return to the main page (maybe use the base template to keep the top navigation at the top). Other than that, use your imagination ๐Ÿ‘พ

Use 2 spaces for indentation in HTML and CSS files.

Profile Picture

When uploading a high resolution photo/image (the one I used was 2186 x 2112), the application crashed with error displayed. See image below. Currently used a 180 x 135 size photo.

error

Security restriction on pull requests with travis-ci

At the moment we are unable to see the test results on pull requests, because Django SECRET_KEY env var is not being decrypted. This is a security restriction from travis-ci to not allow forks to expose any environmental data.

1st solution: not run tests from forks, but this is unlikely what we want to achieve.

2nd solution: use plain text data, since the following SECRET_KEY is only for testing purposes, but also might be a bad idea.

3rd solution: I have explained our problem and asked for an advice on #travis channel. Here is the answer:
< henrikhodne > ananasova: The best work-around for now is to pull down the PR branch locally and push it to a branch on the upstream repository (thereby marking the code as "trusted"), then check the result of the branch build.

@econchick what do you think about the last one? isn't it a bit troublesome?

Add URLs to community navigation bar

This is the community navigation bar.
image

It contains all community pages, news and resources pills. Each of these is currently an empty link. Add urls to community pages and news (resources view/route are yet not implemented) inside the template. You should be looking into systers_portal/templates/community/base.html template, where the navigation bar is located.

To be able to test, login to the admin panel as superuser, create a test community and several community pages.

Registration Error

When I was trying to register, it gave me a Server Error (500). It actually registered me, so I ended up going back to home page and just logging in.

  1. should not have received error if it actually registered me
  2. any error should have a text error displayed.
  3. should also send a confirmation email, but I did not receive one.

Style account templates

This is a cumulative issue with a bunch of tasks. If you want to work on it, pick one template at a time, leave a comment about the template you are working on and submit a pull request once you are done.

For registration/authetication we are using django-allauth. This packages ships with a bunch of very basic templates for various pages. We need to override those to make them match the general style of the website.

We need to style the pages at the following urls:

In order to apply styling to any of the page, it is required to override the django-allauth template.

Example for styling http://127.0.0.1:8000/accounts/logout/:
Create a new file - systers_portal/templates/account/logout.html. This file will override the django-allauth template, which can be found inside the package - allauth/templates/account/logout.html. Move all the important parts to new logout template (form variable, urls, titles). Adjust the styling.

The template should be based on bootstrap3 and be responsive.

As reference see login.html and signup.html.

Create Resource Type form

Create a form for adding and editing a ResourceType object. The form should live in systers_portal/blog/forms.py. Follow the example from the TagForm - it should inherit from the custom class ModelFormWithHelper, specify the model, the fields. Specify the same helper_class and helper_cancel_href, the later should point to the list of all resources.

Add a test for the form - systers_portal/blog/tests/test_forms.py. Don't forget to run all the tests, test coverage and flake8.

Releasing the project under an open source licence

We are developing the project within Google Summer of Code program, therefore I assume the project should be released under an open source licence (please correct me if I am wrong).

Basically the issue that I am raising is whether Systers are planning to release the code under an open source licence and if so, which one?

Since the project is not licenced at the moment, the default copyright laws apply, which means the owner retains all the right and nobody may reproduce or distribute.

Time Format

While adding new meetup time formate comes in 24Hours format and when displaying meetup on meetup page time appears in 12 hours format.

Add new contributor guide for working on Portal Documentation

New contributor documentation is extremely important for onboarding new developers and contributors to a project. Configuring development environments for an actively developed project can be challenging for new contributors. New contributors are learning the code base while dealing with operating system, virtual machine (vm and Docker), as well as language and dependencies (and their versions).

To provide an on-ramp for new developers, a contribution guide for working on Portal Documentation will be developed.

I am assigning this issue to @veniemi1. cc/ @rosariorobinson

Development plan to follow in a separate comment.

Meetup

In the requirements document, I didn't go into too much detail about this, but i'll add a req doc specifically for Meetup.

Currently, we use Meetup Everywhere for global meetups and it works fine for just disseminating information. However, each individual meetup community is not able to really promote any sponsors or information specific to them. They can comment, but that's about it.
http://www.meetup.com/systers/

What I would like to see is something like some of the following examples.
http://lesbianswhotech.org/events/
http://railsgirls.com/
http://www.pyladies.com/locations/

I want Systers to be able to easily organize a meetup locally or if they are traveling, see what meetups are happening in whatever city they're in at the time and be able to participate. I'll design this out a bit more and maybe a conversation is warranted to discuss ideas on approach.

I want meetup control on our site like Lesbians Who Tech. The other two uses meetup.com. I think LWT uses eventbrite which I really like and there's lots of features with eventbrite. I think there are lots of features we can utilize with Eventbrite API for mobile, bar code, etc.

I'd like to start discussions here so we can collaborate on ideas.

Review documentation for installation of development environment on Windows 7

I'm assigning this task to @veniemi1 and she will be pairing with me.

First steps for Windows 7 to check:

  • Installing Python: Follow directions in DjangoGirls documentation section 3 http://tutorial.djangogirls.org/en/python_installation/index.html (make sure you do the step that adds python to the PATH)
  • Verify Python installation: From the command line (see DjangoGirls section 2 if needed), enter python --version and Windows 7 should return the correct python version. If not my recommendation would be to uninstall python, reboot, and reinstall python.
  • Make a note of your PATH settings.

Rename Community.community_admin to Community.admin

At first we created our Community model with the field called community_admin to denote the Community admin, of course. So we ended up with some redundancy - community.community_admin.

Start with the renaming the field from community_admin to admin. Afterwards run migrations - python systers_portal/manage.py makemigrations and python systers_portal/manage.py migrate.

Search for all the usages across the project and make the change. The task seems trivial, but unfortunately spawns across multiple files. Be sure to run tests and flake8.

Good luck :)

Error Admin page change

What is difference between page change in django admin versus when you login through portal and want to do a page change?

I tried changing page I created using django admin portal and received error.

image

I added a page in django admin, but I don't see it on main portal page added anywhere. It may be confusing to community leaders.

Not able to login to admin accout after changing community admin

@ana-balica , you remember during demo , suddenly we were not able to login to admin account,
there is an error ,
To reproduce :
create a community , make superadmin as community admin for this community
If superadmin is not admin for any other community and if you change the admin for the newly created community from superadmin to some other user , superadmin account is logged out and then if you try to login with the superadmin credentials you won't be able to login.

Travis CI Build failures because of SECRET_KEY

One of the setup steps involves the export of the secret key export SECRET_KEY=foobarbaz
but this doesn't happen on Travis CI causing the build failures. This can be easily fixed by adding SECRET_KEY exports to the yml file.

Speed up tests

Speed up test with mocks and mommy. The general rule is to avoid writing to the database.

Functionalities missing in meetup page

I find that the following functionalities missing in the meetups page for a particular location:

  1. Clicking on Join this Meetup button produce no results.
  2. Clicking on various other links ( add member, remove member etc ) on the sidebar do not produce any changes, even for the Meetup admin .

I propose the following should happen, when clicking on the "Join this Meetup" button:

  1. A logged in user visits a Meetup page in a location and finds the 'Join this Meetup' button and clicks on it.
  2. The admin of the meetup should see his request listed in the 'See Join Requests' link on the right sidebar
  3. The admin of the event should have the right to accept/reject the request from that page.
  4. The new member profile should get listed in the 'Members' section along with other members.

Currently, an admin has to go to the admin panel to accept/reject an application, while we still have a button available for public in the Meetups page, which seems ambiguous.

admin.py still imports old Resource_Type

In systers_portal/dashboard/models.py, Resource_Type was renamed to ResourceType. However, this wasn't corrected in systers_portal/dashboard/admin.py where it still imports Resource_Type and uses it.

// cc @ana-balica

Style Sign up page

Go to http://127.0.0.1:8000/accounts/signup/. Page contains a sign up form, but it has no style.

In order to apply styling to this page, it is required to override the default style of django-allauth. Before proceeding, you can take a look at the django-allauth documentation.

Create a new file - systers_portal/templates/account/signup.html. This file will override the django-allauth template, which can be found inside the package - allauth/templates/account/signup.html. Move all the important parts to new signup template (form variable, urls, titles).

The template should be based on bootstrap3, be responsive, preferably centered.

Example - http://portal.systers.org/accounts/signup/

As reference see login.html.

Query regarding installation instructions

I ran into errors regarding the second and third instructions while proceeding with the portal installation stepwise on Ubuntu 14.04.

Step 2 links to Django girls repository which shows how to install psycopg using pip. However, on trying to install psycopg without python3-dev first, I ran into the following error

fatal error: Python.h: No such file or directory #include <Python.h>

The next error I ran into was missing libpq header configuration files. As mentioned here, these seem to be the prerequisites to installing psycopg. Perhaps the order of instructions 2 and 3 should be switched.

Also, on running instruction 3 sudo pip install python3-dev, the following error pops up

Could not find any downloads that satisfy the requirement python3-dev
Cleaning up...
No distributions at all found for python3-dev

I ran pip search python3-dev to see if the package existed but could not find an exact match.
Maybe apt-get should be used instead?

I am proposing a fix to the instructions but since no one else seems to have run into this error, it would be nice to get a confirmation on this. It might be because I didn't have any packages pre-installed. Please check in a similar situation. Also, please check if these are just OS specific.

Permissions groups and decorators

Currently with permissions on models we cannot check whether a user has specific permissions for a specific community. Say if a user is member of A and B community but has add rights only for a community A resources . As per #16 , to make a change to a model instance, the user should be a member of the community and have the specific permission, so the decorators in will be used in combination with permission_required. But in that case if a user has add rights and change rights for some community resources then the user will be able to add and change resources of any community.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.