{ "info": { "author": "bsab", "author_email": "tino.saba@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Topic :: Internet :: WWW/HTTP", "Topic :: Software Development :: Libraries" ], "description": "django-fieldbook\n================\n\ndjango-fieldbook is a reusable Django app for interacting with the Fieldbook_ API.\nFieldbook is the fastest and easiest way to create custom information tools.\nIt\u2019s as easy to get started with as a spreadsheet, but gives you all the power of a\ndatabase-driven business application. Teams use it to track projects and clients,\nimplement data collection workflows, and create custom content management systems.\n\nOverview\n--------\n\nDjango-Fieldbook works with Django 1.8/1.9/1.10/1.11.\nIt is based on fieldbook-py_, a basic Python 3 client.\n\n\nQuick start\n-----------\n\n- Setup Django-fieldbook application in Python environment:\n\n ::\n\n $ pip install django-fieldbook\n\n\n- Migrate the fieldbook app to create the user model:\n\n ::\n\n $ migrate fieldbook\n\n- Add \"fieldbook\" to your INSTALLED\\_APPS setting like this:\n\n ::\n\n INSTALLED_APPS = (\n ...,\n 'fieldbook',\n )\n\n- Write your views with different types (in view.py file or if you want in a nameview.py file):\n\n * A view to get the list of sheet names on the book extending the FieldbookSheetIndexView:\n\n ::\n\n class IndexView(FieldbookSheetIndexView):\n \"\"\"Index class based view.\n\n Return the list of sheets associated with the book and render it\n into a bootstrap list-group.\n \"\"\"\n template_name = \"index.html\"\n\n def get_context_data(self, **kwargs):\n context = super(IndexView, self).get_context_data(**kwargs)\n return context\n\n @method_decorator(login_required)\n def dispatch(self, request, *args, **kwargs):\n return super(IndexView, self).dispatch(request, *args, **kwargs)\n\n\n * A view to get the list of records on the selected sheet extending the FieldbookSheetTableView:\n\n ::\n\n class SheetTableView(FieldbookSheetTableView):\n \"\"\"Sheet class based view.\n\n Returns the array of records (object) for the sheet and render it\n into a jquery datatable.\n \"\"\"\n template_name = \"index.html\"\n\n def get_context_data(self, **kwargs):\n context = super(SheetTableView, self).get_context_data(**kwargs)\n return context\n\n\n * A view to get a specific record in a sheet extending the FieldbookSheetEntryView:\n\n ::\n\n class SheetEntryView(FieldbookSheetEntryView):\n \"\"\"Return or remove a specific record in a sheet.\n\n If is present the url pramater 'to_delete', the current\n entry is removed.\n \"\"\"\n template_name = \"index.html\"\n\n def get_context_data(self, **kwargs):\n \"\"\"Update view context.\"\"\"\n context = super(SheetEntryView, self).get_context_data(**kwargs)\n\n entry_to_delete = kwargs.get(\"to_delete\", False)\n if entry_to_delete:\n context.update({\n 'sheet_entry': self.remove_sheet_entry(self.sheet_name, self.record_id),\n })\n else:\n context.update({\n 'sheet_entry': self.get_sheet_entry(self.sheet_name, self.record_id),\n })\n return context\n\n @method_decorator(login_required)\n def dispatch(self, request, *args, **kwargs):\n return super(SheetEntryView, self).dispatch(request, *args, **kwargs)\n\n * Then you need to map the views to an url in url.py file:\n\n ::\n\n url('^$', IndexView.as_view(), name=\"index\"),\n # list sheets\n url(r'^sheet-table/sheet_name=(?P[-\\w]+)/$', SheetTableView.as_view(), name='sheet_table'),\n # single sheet by id\n url(r'^sheet-entry-(?P\\w+)/sheet_name=(?P[-\\w]+)/$', SheetEntryView.as_view(),\n name='sheet_entry'),\n url(r'^sheet-entry-(?P\\w+)/sheet_name=(?P[-\\w]+)/delete/$', SheetEntryView.as_view(),\n {'to_delete': True}, name='sheet_entry_delete'),\n\n\n- If you want you can use the base FieldBookUser model or extend it defining a simple model like this example:\n\n ::\n\n from fieldbook.models import FieldBookUser\n class CustomFieldBookUser(FieldBookUser):\n nick = models.CharField(max_length=100)\n\n- Map the login, logout and register to an url in url.py:\n\n ::\n\n url(r'^accounts/login/$', auth_views.login, {'template_name': 'login.html'}, name='login'),\n url(r'^accounts/logout/$', auth_views.logout, {'template_name': 'logged_out.html'}, name='logout'),\n url(r'^fieldbook/', include('fieldbook.urls')),\n\nNotes\n-----------\n\nFeel free to fork and send a pull request.\n\n\n.. _Fieldbook: http://fieldbook.com\n.. _fieldbook-py: https://github.com/mattstibbs/fieldbook_py", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/bsab/django-fieldbook", "keywords": "", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "django-fieldbook", "package_url": "https://pypi.org/project/django-fieldbook/", "platform": "", "project_url": "https://pypi.org/project/django-fieldbook/", "project_urls": { "Homepage": "https://github.com/bsab/django-fieldbook" }, "release_url": "https://pypi.org/project/django-fieldbook/0.0.3/", "requires_dist": null, "requires_python": "", "summary": "A simple Django app for interacting with the Fieldbook.com API.", "version": "0.0.3" }, "last_serial": 2926233, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "9f50bd6166fc8706cbfefb51cb144e81", "sha256": "f4450664b9e12b81b58c74e4791b681457e3dd74c78e22c229ec72c210f214c9" }, "downloads": -1, "filename": "django-fieldbook-0.0.1.tar.gz", "has_sig": false, "md5_digest": "9f50bd6166fc8706cbfefb51cb144e81", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7874, "upload_time": "2017-06-01T20:49:51", "url": "https://files.pythonhosted.org/packages/3b/0d/050f9ad63753019dacd7aeee48ebea35fb67877e9810530cb0b9537e3289/django-fieldbook-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "89d63708d81020cc83fc20f6736a9c3b", "sha256": "2d21f452ccb7fe7f4013108a1d451385e766b5607bfd35eafa0576ef25ebc0d0" }, "downloads": -1, "filename": "django-fieldbook-0.0.2.zip", "has_sig": false, "md5_digest": "89d63708d81020cc83fc20f6736a9c3b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13415, "upload_time": "2017-06-05T11:53:18", "url": "https://files.pythonhosted.org/packages/4a/71/b1142f8766db3005eb50b85b522ec4bacbfbcf802e7be7c2f0adff8a0f7e/django-fieldbook-0.0.2.zip" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "10ed3841604ff760622de5848107cb42", "sha256": "efa09d3d6bbf02d1bd09c59fda29c259e5e3c4b229b0e3c5b6956f7eceefa287" }, "downloads": -1, "filename": "django-fieldbook-0.0.3.zip", "has_sig": false, "md5_digest": "10ed3841604ff760622de5848107cb42", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13299, "upload_time": "2017-06-05T12:11:42", "url": "https://files.pythonhosted.org/packages/27/a8/f70791b21bad4eb480461d3761e79a6bbaad28a9872f66f0abeac751fbe6/django-fieldbook-0.0.3.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "10ed3841604ff760622de5848107cb42", "sha256": "efa09d3d6bbf02d1bd09c59fda29c259e5e3c4b229b0e3c5b6956f7eceefa287" }, "downloads": -1, "filename": "django-fieldbook-0.0.3.zip", "has_sig": false, "md5_digest": "10ed3841604ff760622de5848107cb42", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13299, "upload_time": "2017-06-05T12:11:42", "url": "https://files.pythonhosted.org/packages/27/a8/f70791b21bad4eb480461d3761e79a6bbaad28a9872f66f0abeac751fbe6/django-fieldbook-0.0.3.zip" } ] }