{ "info": { "author": "Ben Lopatin + arteria GmbH", "author_email": "ben.lopatin@wellfireinteractive.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4" ], "description": "django-ar-organizations\n====================\n\n.. image:: https://travis-ci.org/arteria/django-ar-organizations.svg?branch=master\n :target: https://travis-ci.org/arteria/django-ar-organizations\n\n.. image:: https://coveralls.io/repos/github/arteria/django-ar-organizations/badge.svg?branch=master\n :target: https://coveralls.io/github/arteria/django-ar-organizations?branch=master\n\n.. image:: https://img.shields.io/pypi/v/django-ar-organizations.svg\n :target: https://pypi.python.org/pypi/django-ar-organizations)\n\nThis package is an adopted and adapted version of django-organizations (https://github.com/bennylope/django-organizations)!\n\nAdd user-managed, multi-user groups to your Django project. Use\ndjango-organizations whether your site needs organizations that function like\nsocial groups or multi-user account objects to provide account and subscription\nfunctionality beyond the individual user.\n\n* Relies on `django.contrib.auth` and does not add or require additional user\n or authentication functionality\n* Users can be belong to and own more than one organization (account, group)\n* Invitation and registration functionality is designed to be flexible to allow\n you to integrate existing invitation and registration apps\n\nDocumentation is on `Read the Docs\n`_\n\nInstalling\n==========\n\nFirst add the application to your Python path. The easiest way is to use\n`pip`::\n\n pip install django-ar-organizations\n\nYou should install by downloading the source and running::\n\n $ python setup.py install\n\n\nMigrating to 0.2.10 manually\n----------------------------\n\nUpdate the database::\n\n ALTER TABLE `organizations_organization` add `custom_data` longtext NOT NULL after is_active;\n ALTER TABLE `organizations_organization` add `custom_settings` longtext NOT NULL after custom_data;\n\nand set an empty dictionary as default value::\n\n update organizations_organization set custom_settings='{}', custom_data='{}' where id > 0 ;\n\n\nConfiguring\n-----------\n\nMake sure you have `django.contrib.auth` installed, and add the `organizations`\napplication to your `INSTALLED_APPS` list::\n\n INSTALLED_APPS = (\n ...\n 'django.contrib.auth',\n 'organizations',\n )\n\nThen ensure that your project URL conf is updated. You should hook in the\nmain application URL conf as well as your chosen invitation backend URLs::\n\n from organizations.backends import invitation_backend\n\n urlpatterns = patterns('',\n ...\n url(r'^accounts/', include('organizations.urls')),\n url(r'^invitations/', include(invitation_backend().get_urls())),\n )\n\nAdd `organizations.middleware.OrganizationsMiddleware` to the `MIDDLEWARE_CLASSES` this middleware stores the current Organization in ther session.::\n\n MIDDLEWARE_CLASSES = (\n ...\n 'organizations.middleware.OrganizationsMiddleware',\n ...\n )\n\n\nYou can specify a different invitation backend in your project settings, and\nthe `invitation_backend` function will provide the URLs defined by that\nbackend::\n\n ORGS_INVITATION_BACKEND = 'myapp.backends.MyInvitationBackend'\n\nThere is also a lightly tested way to use your own user model, rather than the\ndefault `auth.User` model. Set the `AUTH_USER_MODEL` setting to the dotted\nmodel name of your custom user model, following the procedure in Django 1.5::\n\n AUTH_USER_MODEL = 'myuserapp.MyUser'\n\n**This is still experimental and your user model's API should hew close to that\nof the `auth.User` class.**\n\nUsage Overview\n==============\n\nFor most use cases it should be sufficient to include the app views directly\nusing the default URL conf file. You can customize their functionality or\naccess controls by extending the base views.\n\nThere are three models:\n\n* **Organization** The group object. This is what you would associate your own\n app's functionality with, e.g. subscriptions, repositories, projects, etc.\n* **OrganizationUser** A custom `through` model for the ManyToMany relationship\n between the `Organization` model and the `User` model. It stores additional\n information about the user specific to the organization and provides a\n convenient link for organization ownership.\n* **OrganizationOwner** The user with rights over the life and death of the\n organization. This is a one to one relationship with the `OrganizationUser`\n model. This allows `User` objects to own multiple organizations and makes it\n easy to enforce ownership from within the organization's membership.\n\nThe underlying organizations API is simple::\n\n >>> from compat import get_user_model\n >>> from organizations.utils import create_organization\n >>> \n >>> User = get_user_model()\n >>> chris = User.objects.create(username=\"chris\")\n >>> soundgarden = create_organization(chris, \"Soundgarden\", \"soundgarden\")\n >>> soundgarden.is_member(chris)\n True\n >>> soundgarden.is_admin(chris)\n True\n >>> soundgarden.owner.organization_user\n \n >>> soundgarden.owner.organization_user.user\n \n >>> audioslave = create_organization(chris, \"Audioslave\", \"audioslave\")\n >>> tom = User.objects.create(username=\"tom\")\n >>> audioslave.add_user(tom, is_admin=True)\n \n\n\nOverview\n--------\n\nEach organization can have only one owner, however a site user can be a member\nof multiple organizations, or own multiple organizations. The OrganizationUser\nmodel servers as an intermediary between the `Organization` and the `Users` to\nallow this.\n\nDevelopment & Contributing\n==========================\n\nDevelopment is on-going. To-do items have been moved to the wiki for the time\nbeing.\n\nThe basic functionality should not need much extending. Current dev priorities\nfor me and contributors should include:\n\n* Improving the tests and test coverage (ideally moving them back out of the\n main module and executable using the setup.py file)\n* Improving the backends and backends concept so that additional invitation and\n registration backends can be used\n* Documentation\n* Ensuring all application text is translatable\n* Python 3 readiness\n* Configurable user model (a la Django 1.5's anticipated auth.User rewrite)\n\nPlease use the project's issues tracker to report bugs, doc updates, or other\nrequests/suggestions.\n\nTargets\n-------\n\nThe codebase is targeted at tested against:\n\n* Django 1.4.x against Python 2.6 and Python 2.7\n* Django 1.5.x against Python 2.6, Python 2.7, and Python 3.3\n* Django 1.6.x against Python 2.7 and Python 3.3\n* Django 1.7\n\nSubmitting\n----------\n\nThese submission guidelines will make it more likely your submissions will be\nreviewed and make it into the project:\n\n* Ensure they match the project goals and are sufficiently generalized\n* Please try to follow `Django coding style\n `_.\n The code base style isn't all up to par, but I'd like it to move in that\n direction\n* Also please try to include `good commit log messages\n `_.\n* Pull requests should include a quantity amount of code and commits that are\n reasonable to review, are logically grouped, and based off clean feature\n branches.\n\nCode contributions are expected to pass in all three target environments, and\npull requests should be made from branches with passing builds.\n\nProject goals\n-------------\n\ndjango-organizations should be backend agnostic:\n\n1. Authentication agnostic\n2. Registration agnostic\n3. Invitation agnostic\n4. User messaging agnostic\n\nEtc.\n\nLicense\n=======\n\nAnyone is free to use or modify this software under the terms of the BSD\nlicense.\n\n\nSpecific settings\n=================\n\n* ``AR_FALLBACK_ORG_SLUG`` - allow to define a fallback organization for anonymous users\n* ``AR_CRM_MULTI_CLIENT`` - arteria internal \n\n\nQ&A\n===\n\nQ: Gettting a ``SimpleLazyObject`` error \n----------------------------------------\n \n TypeError at /dummy/\n int() argument must be a string or a number, not 'SimpleLazyObject'\n\nA:\n-- \nDid you specify ``AR_FALLBACK_ORG_SLUG`` in your project settings?", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/arteria/django-ar-organizations/", "keywords": "", "license": "BSD License", "maintainer": "", "maintainer_email": "", "name": "django-ar-organizations", "package_url": "https://pypi.org/project/django-ar-organizations/", "platform": "OS Independent", "project_url": "https://pypi.org/project/django-ar-organizations/", "project_urls": { "Homepage": "https://github.com/arteria/django-ar-organizations/" }, "release_url": "https://pypi.org/project/django-ar-organizations/0.2.42/", "requires_dist": null, "requires_python": "", "summary": "Group accounts for Django", "version": "0.2.42" }, "last_serial": 3780044, "releases": { "0.2.0": [ { "comment_text": "", "digests": { "md5": "cf22e68b2a191d25cd2f7e6fb004319c", "sha256": "2d55024f4f2e106a4cba1f7678371ee8d7d01a08a88eb59e2f1f4d10cd5408a1" }, "downloads": -1, "filename": "django-ar-organizations-0.2.0.tar.gz", "has_sig": false, "md5_digest": "cf22e68b2a191d25cd2f7e6fb004319c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26493, "upload_time": "2014-09-24T15:54:24", "url": "https://files.pythonhosted.org/packages/6a/e7/7381fa48cea8dbeb69f7012803b0a3fc79db7f6571d37db091071eb2f57b/django-ar-organizations-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "450fc9b7598373f42352388ca9d20616", "sha256": "934e1d2bf9cec5ebae7b45ee14215c2d8709c6bfc0c96d55f469d20ce3eab261" }, "downloads": -1, "filename": "django-ar-organizations-0.2.1.tar.gz", "has_sig": false, "md5_digest": "450fc9b7598373f42352388ca9d20616", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25426, "upload_time": "2014-10-24T21:28:40", "url": "https://files.pythonhosted.org/packages/03/fc/2640b4b0a0a9e205e1e9377a0beb04f79ee9ec4b532557892f5da9ee4d3d/django-ar-organizations-0.2.1.tar.gz" } ], "0.2.10": [ { "comment_text": "", "digests": { "md5": "cc73ba4db8dfe89e8e4b445c0afd8ca7", "sha256": "7b50a516b32d5611ba4135f022dc1cc608a975018c3027f2a2793251909c48ba" }, "downloads": -1, "filename": "django-ar-organizations-0.2.10.tar.gz", "has_sig": false, "md5_digest": "cc73ba4db8dfe89e8e4b445c0afd8ca7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26500, "upload_time": "2015-04-20T12:39:47", "url": "https://files.pythonhosted.org/packages/cc/a4/0de9fba25e2ec8d5c1374b4013e7463d04302be4115835f5cf412f233697/django-ar-organizations-0.2.10.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "b10af72b0efd0651ec7dce36891686dc", "sha256": "19722a1b488950f279cd9f0610460590cb3f10c0285299a655b4adfed37151f0" }, "downloads": -1, "filename": "django-ar-organizations-0.2.2.tar.gz", "has_sig": false, "md5_digest": "b10af72b0efd0651ec7dce36891686dc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25562, "upload_time": "2014-11-05T10:06:46", "url": "https://files.pythonhosted.org/packages/c7/67/3dcb5bf6de961ce45f7ebf9559a5a24c90f274e429ea970b6aa3f2bcccef/django-ar-organizations-0.2.2.tar.gz" } ], "0.2.40": [ { "comment_text": "", "digests": { "md5": "1f351f27455597cf9d61c0ec4a1c0317", "sha256": "3df42aa1fb32c3c01f78ac67acfcbf7a1ebb6af3c37b1b61e89279764d6a67bc" }, "downloads": -1, "filename": "django-ar-organizations-0.2.40.tar.gz", "has_sig": false, "md5_digest": "1f351f27455597cf9d61c0ec4a1c0317", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27926, "upload_time": "2017-08-02T12:15:06", "url": "https://files.pythonhosted.org/packages/09/78/f2acc0255248812250a882df188cc6142460efc078d2a23af5c02604b7de/django-ar-organizations-0.2.40.tar.gz" } ], "0.2.41": [ { "comment_text": "", "digests": { "md5": "a14bb9ad381641628c11ebc3c7f76668", "sha256": "c925a3f2428a5b6b407f7820739397748482cdf64cee8056497c2b5f67e5e82c" }, "downloads": -1, "filename": "django-ar-organizations-0.2.41.tar.gz", "has_sig": false, "md5_digest": "a14bb9ad381641628c11ebc3c7f76668", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28372, "upload_time": "2018-02-21T10:38:27", "url": "https://files.pythonhosted.org/packages/cd/fd/090b3683b1130c3973fb7e2bf4c148894b06ff66c8fd8220a7fd23ef581e/django-ar-organizations-0.2.41.tar.gz" } ], "0.2.42": [ { "comment_text": "", "digests": { "md5": "d44913227e8dd497d487758fb57b0376", "sha256": "74edc2cea87af4d6ba1693188c3bc4ebb9586e375558a07130c3bd00baee09b5" }, "downloads": -1, "filename": "django-ar-organizations-0.2.42.tar.gz", "has_sig": false, "md5_digest": "d44913227e8dd497d487758fb57b0376", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28433, "upload_time": "2018-04-19T09:42:29", "url": "https://files.pythonhosted.org/packages/44/ab/48ca6e07e92a748bc1b0444f1f17b71bb50e4637642ace30b19f28d35c47/django-ar-organizations-0.2.42.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "52f524f5510149f354040241c9805064", "sha256": "63a42481360b8738cce9b3089b85cb83e31d4f241ff533cf38add095db120259" }, "downloads": -1, "filename": "django-ar-organizations-0.2.5.tar.gz", "has_sig": false, "md5_digest": "52f524f5510149f354040241c9805064", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25613, "upload_time": "2015-01-28T13:10:32", "url": "https://files.pythonhosted.org/packages/bc/2d/7e13fa72b88431b27b1ece53f037b946ec9843b5782203d6ee4cc41844b2/django-ar-organizations-0.2.5.tar.gz" } ], "0.2.6": [ { "comment_text": "", "digests": { "md5": "3901f54d6d83bd7232e967a132ec1ded", "sha256": "6b7a4b9361d52e524a1520fe5fb578f9fa63338318d388efad53e67b163ce6a3" }, "downloads": -1, "filename": "django-ar-organizations-0.2.6.tar.gz", "has_sig": false, "md5_digest": "3901f54d6d83bd7232e967a132ec1ded", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25643, "upload_time": "2015-01-28T13:33:12", "url": "https://files.pythonhosted.org/packages/ed/c6/9d1a0af8b638ee01a949325a8cc7a8ba48d237844ad035b59b97ce39de59/django-ar-organizations-0.2.6.tar.gz" } ], "0.2.7": [ { "comment_text": "", "digests": { "md5": "5a84d76e7861dcb4794819176b162fb0", "sha256": "cb0641ac531f2d01f663bcf2e8330bdeb7584c4bf1b7540f672db35ce2c5fe40" }, "downloads": -1, "filename": "django-ar-organizations-0.2.7.tar.gz", "has_sig": false, "md5_digest": "5a84d76e7861dcb4794819176b162fb0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25647, "upload_time": "2015-01-28T13:43:13", "url": "https://files.pythonhosted.org/packages/db/4a/6c2ca5f2767577f28798b72949acf6a0bac51fff3cb8bd171a8197a7c696/django-ar-organizations-0.2.7.tar.gz" } ], "0.2.8": [ { "comment_text": "", "digests": { "md5": "c7e3cb6ec005d769175fb4f545e5973b", "sha256": "0838f014a8ebb4aa36ea98715a25c4bda750ff6c04055864f44a0312ae5aec2a" }, "downloads": -1, "filename": "django-ar-organizations-0.2.8.tar.gz", "has_sig": false, "md5_digest": "c7e3cb6ec005d769175fb4f545e5973b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25876, "upload_time": "2015-04-07T13:07:48", "url": "https://files.pythonhosted.org/packages/2f/d2/f5ccef3ae249ac8a33a8059ebae9a94ec258a5184dda7b63d480d6a4cdce/django-ar-organizations-0.2.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d44913227e8dd497d487758fb57b0376", "sha256": "74edc2cea87af4d6ba1693188c3bc4ebb9586e375558a07130c3bd00baee09b5" }, "downloads": -1, "filename": "django-ar-organizations-0.2.42.tar.gz", "has_sig": false, "md5_digest": "d44913227e8dd497d487758fb57b0376", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28433, "upload_time": "2018-04-19T09:42:29", "url": "https://files.pythonhosted.org/packages/44/ab/48ca6e07e92a748bc1b0444f1f17b71bb50e4637642ace30b19f28d35c47/django-ar-organizations-0.2.42.tar.gz" } ] }