{"action":"created","comment":{"url":"https://api.github.com/repos/mathuin/pyment/pulls/comments/28646355","id":28646355,"diff_hunk":"@@ -0,0 +1,254 @@\n+User's guide\n+============\n+\n+The purpose of this document is to walk the mead maker through all the\n+major operations required to use the software.  Throughout this\n+document, this role is referred to as the producer.  This is in\n+contrast to the consumer, who plays a significant role in the\n+distribution section.\n+\n+Setup\n+-----\n+\n+``pyment`` is like any other Django app in that it must be deployed in\n+order to be useful.  Deployment specifics are beyond the scope of this\n+document, but references such as `How to deploy with WSGI\n+<https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/>`_ and\n+tutorials such as `How To Deploy a Local Django App to a VPS\n+<https://www.digitalocean.com/community/tutorials/how-to-deploy-a-local-django-app-to-a-vps>`_\n+are available on the internet.  At the very minimum, the producer will\n+need a Django user account in order to access the admin site to\n+perform many of the operations listed below.  For more information\n+about the admin site, including how to use it, please see `Chapter 6:\n+The Django Admin Site\n+<http://www.djangobook.com/en/2.0/chapter06.html>`_.\n+\n+Production\n+----------\n+\n+.. warning:: It is essential to remember that there are many ways to\n+\t     brew mead, and that this software was written to suit the\n+\t     particular brewing :doc:`process <brewprocess>` used by\n+\t     its author.  That being said, other brewers will likely\n+\t     find this software useful, and :doc:`pull requests <dev>`\n+\t     are cheerfully encouraged.\n+\n+This section focuses on the basics of mead production: ingredients,\n+recipes, batches, and products.  A discussion of samples is also\n+included.  Each of these models is part of the ``meadery`` app.\n+\n+Ingredients\n+~~~~~~~~~~~\n+\n+Ingredients are the raw components of the mead.  \n+\n+There are four types of ingredients: \n+\n+* sugars (example: wildflower honey)\n+* solvents (example: spring water)\n+* flavors (example: bulk cinnamon)\n+* yeasts (example: Red Star champagne yeast)\n+\n+Different types of information are stored for each type of ingredient:\n+\n+* Specific gravity and specific heat (sugars and solvents)\n+* Cost per unit (all)\n+* \"Natural\" or not (all but yeast)\n+* Appellation (all but yeast)\n+\n+Cost per unit is recorded per kilogram for sugars, per liter for\n+solvents, \"other\" for flavor, and per packet or vial for yeast.\n+\"Natural\" is defined as \"does not contain added color, artificial\n+flavors or synthetic substances\" for these purposes.  Appellation\n+describes the region from which the ingredient is sourced.\n+\n+Ingredients are created from the ingredient select page and can be\n+changed at the ingredient change page.\n+\n+Recipes\n+~~~~~~~\n+\n+Recipes are collections of ingredients, including the ingredient's\n+amount and (in the case of sugars and solvents) temperature as\n+appropriate.  The total cost of the batch can be calculated based on\n+the ingredients and their amounts.\n+\n+Information for the ingredients is also used to determine the\n+appropriate BJCP category.  Here are some examples:\n+\n+* A recipe with apple juice as the only solvent will be classified as\n+  a cyser.\n+\n+* A recipe with spices as the only flavor will be classified as a\n+  metheglin.\n+\n+* A recipe with apple juice *and* spices will be classified as an open\n+  category mead.\n+\n+.. note:: These classifications are just recommendations.  If they are\n+          incorrect or incomplete, please submit :doc:`bug reports\n+          <bugfeature>` as appropriate.\n+\n+Recipes also have titles and descriptions for organizational purposes\n+as well.\n+\n+Recipes can be created from the recipe select page as well as from\n+existing batches by pressing the 'Create recipe from batch' button on\n+the batch's change page.\n+\n+Batches\n+~~~~~~~\n+\n+Batches are actual instantiations of recipes.  Sometimes brew day\n+doesn't go exactly as planned, so ingredient substitutions and other\n+changes are possible.  Additionally, samples are associated with\n+batches.\n+\n+Like recipes, batches have titles and descriptions.  Unlike recipes,\n+batches also have names.  Batch names are composed of unique strings\n+representing brewing events and a batch letter indicating the sequence\n+in which the batch was brewed.  The author uses batch names like \"SIP\n+26 C\", where \"SIP 26\" represents the brewing event and \"C\" indicates\n+that this was the third batch brewed during that event.\n+\n+.. note:: Any non-empty string can be used as an event identifier.\n+\n+Batches can be created from the recipe's change page by pressing the\n+'Create batch from recipe' button.  Placeholder values for the\n+batch-specific information must be changed immediately to avoid\n+conflict with other batches.\n+\n+.. todo:: There is an open issue about this problem.\n+\n+Products\n+~~~~~~~~\n+\n+Products are batches which have been bottled.  Once the bottling is\n+complete, labels can be generated based on the product's ingredients\n+and other characteristics.  Jars of products that have been labeled\n+can be entered into the inventory management system.\n+\n+Product names, titles, and descriptions are all inherited from their\n+batches.  Product titles and descriptions are currently used for both\n+labels and distribution.\n+\n+When a batch is bottled into jars, the Jars field of the batch's\n+change page must be updated and the batch saved.  At this point labels\n+can be printed and applied to the jars.  A product can then be created\n+from that batch by pressing the 'Create product from batch` button on\n+the batch's change page.\n+\n+Samples\n+~~~~~~~\n+\n+Samples are taken throughout the lifetime of the batch.  The following\n+information is collected for each sample:\n+\n+* Temperature (in degrees Fahrenheit)\n+* Specific gravity\n+* Notes (traditionally used for sensory data)\n+\n+These samples are used to calculate the percent alcohol of the mead,\n+and are convenient for storing information which can be referenced\n+when making labels.\n+\n+Storage\n+-------\n+\n+Once the mead is produced, it must be stored in such a manner as to\n+facilitate easy retrieval of specific jars.  This requires an\n+inventory management system.  The largest unit of storage in the IMS\n+is the warehouse.  Each warehouse is a collection of rows.  Each row\n+is a collection of shelves.  Each shelf is a collection of crate-sized\n+bins.  Each bin contains one or more crates.  Each crate contains one\n+or more jars.  At least one bin and one crate must be created for the\n+IMS to function.\n+\n+Create jars\n+~~~~~~~~~~~\n+\n+To actually create the jars requires a management command.  Here is an example::","path":"docs/source/user.rst","position":170,"original_position":170,"commit_id":"885660d8422de4b3fe2a415b23cf141801823262","original_commit_id":"885660d8422de4b3fe2a415b23cf141801823262","user":{"login":"chryzrose","id":11093117,"avatar_url":"https://avatars.githubusercontent.com/u/11093117?v=3","gravatar_id":"","url":"https://api.github.com/users/chryzrose","html_url":"https://github.com/chryzrose","followers_url":"https://api.github.com/users/chryzrose/followers","following_url":"https://api.github.com/users/chryzrose/following{/other_user}","gists_url":"https://api.github.com/users/chryzrose/gists{/gist_id}","starred_url":"https://api.github.com/users/chryzrose/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chryzrose/subscriptions","organizations_url":"https://api.github.com/users/chryzrose/orgs","repos_url":"https://api.github.com/users/chryzrose/repos","events_url":"https://api.github.com/users/chryzrose/events{/privacy}","received_events_url":"https://api.github.com/users/chryzrose/received_events","type":"User","site_admin":false},"body":"If I read this and the next bits, I would have no idea what to do. Does your audience consist solely of developer types?","created_at":"2015-04-18T18:39:05Z","updated_at":"2015-04-18T18:39:05Z","html_url":"https://github.com/mathuin/pyment/pull/79#discussion_r28646355","pull_request_url":"https://api.github.com/repos/mathuin/pyment/pulls/79","_links":{"self":{"href":"https://api.github.com/repos/mathuin/pyment/pulls/comments/28646355"},"html":{"href":"https://github.com/mathuin/pyment/pull/79#discussion_r28646355"},"pull_request":{"href":"https://api.github.com/repos/mathuin/pyment/pulls/79"}}},"pull_request":{"url":"https://api.github.com/repos/mathuin/pyment/pulls/79","id":33388488,"html_url":"https://github.com/mathuin/pyment/pull/79","diff_url":"https://github.com/mathuin/pyment/pull/79.diff","patch_url":"https://github.com/mathuin/pyment/pull/79.patch","issue_url":"https://api.github.com/repos/mathuin/pyment/issues/79","number":79,"state":"open","locked":false,"title":"First pass at documentation.","user":{"login":"mathuin","id":221823,"avatar_url":"https://avatars.githubusercontent.com/u/221823?v=3","gravatar_id":"","url":"https://api.github.com/users/mathuin","html_url":"https://github.com/mathuin","followers_url":"https://api.github.com/users/mathuin/followers","following_url":"https://api.github.com/users/mathuin/following{/other_user}","gists_url":"https://api.github.com/users/mathuin/gists{/gist_id}","starred_url":"https://api.github.com/users/mathuin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mathuin/subscriptions","organizations_url":"https://api.github.com/users/mathuin/orgs","repos_url":"https://api.github.com/users/mathuin/repos","events_url":"https://api.github.com/users/mathuin/events{/privacy}","received_events_url":"https://api.github.com/users/mathuin/received_events","type":"User","site_admin":false},"body":"The purpose of this documentation is to assist new users and\r\ndevelopers of the project.  It includes references to my own brewing\r\nprocess as well as tools required for development.","created_at":"2015-04-15T19:33:28Z","updated_at":"2015-04-18T18:39:05Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ae5341fa9b63f99ce07acc1980a6051c144bc740","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/mathuin/pyment/pulls/79/commits","review_comments_url":"https://api.github.com/repos/mathuin/pyment/pulls/79/comments","review_comment_url":"https://api.github.com/repos/mathuin/pyment/pulls/comments{/number}","comments_url":"https://api.github.com/repos/mathuin/pyment/issues/79/comments","statuses_url":"https://api.github.com/repos/mathuin/pyment/statuses/885660d8422de4b3fe2a415b23cf141801823262","head":{"label":"mathuin:add-docs","ref":"add-docs","sha":"885660d8422de4b3fe2a415b23cf141801823262","user":{"login":"mathuin","id":221823,"avatar_url":"https://avatars.githubusercontent.com/u/221823?v=3","gravatar_id":"","url":"https://api.github.com/users/mathuin","html_url":"https://github.com/mathuin","followers_url":"https://api.github.com/users/mathuin/followers","following_url":"https://api.github.com/users/mathuin/following{/other_user}","gists_url":"https://api.github.com/users/mathuin/gists{/gist_id}","starred_url":"https://api.github.com/users/mathuin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mathuin/subscriptions","organizations_url":"https://api.github.com/users/mathuin/orgs","repos_url":"https://api.github.com/users/mathuin/repos","events_url":"https://api.github.com/users/mathuin/events{/privacy}","received_events_url":"https://api.github.com/users/mathuin/received_events","type":"User","site_admin":false},"repo":{"id":5989467,"name":"pyment","full_name":"mathuin/pyment","owner":{"login":"mathuin","id":221823,"avatar_url":"https://avatars.githubusercontent.com/u/221823?v=3","gravatar_id":"","url":"https://api.github.com/users/mathuin","html_url":"https://github.com/mathuin","followers_url":"https://api.github.com/users/mathuin/followers","following_url":"https://api.github.com/users/mathuin/following{/other_user}","gists_url":"https://api.github.com/users/mathuin/gists{/gist_id}","starred_url":"https://api.github.com/users/mathuin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mathuin/subscriptions","organizations_url":"https://api.github.com/users/mathuin/orgs","repos_url":"https://api.github.com/users/mathuin/repos","events_url":"https://api.github.com/users/mathuin/events{/privacy}","received_events_url":"https://api.github.com/users/mathuin/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mathuin/pyment","description":"Pyment is a website that tracks the production, storage, and distribution of my home-brewed mead.","fork":false,"url":"https://api.github.com/repos/mathuin/pyment","forks_url":"https://api.github.com/repos/mathuin/pyment/forks","keys_url":"https://api.github.com/repos/mathuin/pyment/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mathuin/pyment/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mathuin/pyment/teams","hooks_url":"https://api.github.com/repos/mathuin/pyment/hooks","issue_events_url":"https://api.github.com/repos/mathuin/pyment/issues/events{/number}","events_url":"https://api.github.com/repos/mathuin/pyment/events","assignees_url":"https://api.github.com/repos/mathuin/pyment/assignees{/user}","branches_url":"https://api.github.com/repos/mathuin/pyment/branches{/branch}","tags_url":"https://api.github.com/repos/mathuin/pyment/tags","blobs_url":"https://api.github.com/repos/mathuin/pyment/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mathuin/pyment/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mathuin/pyment/git/refs{/sha}","trees_url":"https://api.github.com/repos/mathuin/pyment/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mathuin/pyment/statuses/{sha}","languages_url":"https://api.github.com/repos/mathuin/pyment/languages","stargazers_url":"https://api.github.com/repos/mathuin/pyment/stargazers","contributors_url":"https://api.github.com/repos/mathuin/pyment/contributors","subscribers_url":"https://api.github.com/repos/mathuin/pyment/subscribers","subscription_url":"https://api.github.com/repos/mathuin/pyment/subscription","commits_url":"https://api.github.com/repos/mathuin/pyment/commits{/sha}","git_commits_url":"https://api.github.com/repos/mathuin/pyment/git/commits{/sha}","comments_url":"https://api.github.com/repos/mathuin/pyment/comments{/number}","issue_comment_url":"https://api.github.com/repos/mathuin/pyment/issues/comments{/number}","contents_url":"https://api.github.com/repos/mathuin/pyment/contents/{+path}","compare_url":"https://api.github.com/repos/mathuin/pyment/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mathuin/pyment/merges","archive_url":"https://api.github.com/repos/mathuin/pyment/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mathuin/pyment/downloads","issues_url":"https://api.github.com/repos/mathuin/pyment/issues{/number}","pulls_url":"https://api.github.com/repos/mathuin/pyment/pulls{/number}","milestones_url":"https://api.github.com/repos/mathuin/pyment/milestones{/number}","notifications_url":"https://api.github.com/repos/mathuin/pyment/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mathuin/pyment/labels{/name}","releases_url":"https://api.github.com/repos/mathuin/pyment/releases{/id}","created_at":"2012-09-27T22:10:50Z","updated_at":"2015-04-15T19:20:24Z","pushed_at":"2015-04-18T17:30:49Z","git_url":"git://github.com/mathuin/pyment.git","ssh_url":"git@github.com:mathuin/pyment.git","clone_url":"https://github.com/mathuin/pyment.git","svn_url":"https://github.com/mathuin/pyment","homepage":null,"size":896,"stargazers_count":2,"watchers_count":2,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":16,"forks":0,"open_issues":16,"watchers":2,"default_branch":"master"}},"base":{"label":"mathuin:master","ref":"master","sha":"8c73af00c9186a1c1cb175d8aa03065e82f5bb9d","user":{"login":"mathuin","id":221823,"avatar_url":"https://avatars.githubusercontent.com/u/221823?v=3","gravatar_id":"","url":"https://api.github.com/users/mathuin","html_url":"https://github.com/mathuin","followers_url":"https://api.github.com/users/mathuin/followers","following_url":"https://api.github.com/users/mathuin/following{/other_user}","gists_url":"https://api.github.com/users/mathuin/gists{/gist_id}","starred_url":"https://api.github.com/users/mathuin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mathuin/subscriptions","organizations_url":"https://api.github.com/users/mathuin/orgs","repos_url":"https://api.github.com/users/mathuin/repos","events_url":"https://api.github.com/users/mathuin/events{/privacy}","received_events_url":"https://api.github.com/users/mathuin/received_events","type":"User","site_admin":false},"repo":{"id":5989467,"name":"pyment","full_name":"mathuin/pyment","owner":{"login":"mathuin","id":221823,"avatar_url":"https://avatars.githubusercontent.com/u/221823?v=3","gravatar_id":"","url":"https://api.github.com/users/mathuin","html_url":"https://github.com/mathuin","followers_url":"https://api.github.com/users/mathuin/followers","following_url":"https://api.github.com/users/mathuin/following{/other_user}","gists_url":"https://api.github.com/users/mathuin/gists{/gist_id}","starred_url":"https://api.github.com/users/mathuin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mathuin/subscriptions","organizations_url":"https://api.github.com/users/mathuin/orgs","repos_url":"https://api.github.com/users/mathuin/repos","events_url":"https://api.github.com/users/mathuin/events{/privacy}","received_events_url":"https://api.github.com/users/mathuin/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mathuin/pyment","description":"Pyment is a website that tracks the production, storage, and distribution of my home-brewed mead.","fork":false,"url":"https://api.github.com/repos/mathuin/pyment","forks_url":"https://api.github.com/repos/mathuin/pyment/forks","keys_url":"https://api.github.com/repos/mathuin/pyment/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mathuin/pyment/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mathuin/pyment/teams","hooks_url":"https://api.github.com/repos/mathuin/pyment/hooks","issue_events_url":"https://api.github.com/repos/mathuin/pyment/issues/events{/number}","events_url":"https://api.github.com/repos/mathuin/pyment/events","assignees_url":"https://api.github.com/repos/mathuin/pyment/assignees{/user}","branches_url":"https://api.github.com/repos/mathuin/pyment/branches{/branch}","tags_url":"https://api.github.com/repos/mathuin/pyment/tags","blobs_url":"https://api.github.com/repos/mathuin/pyment/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mathuin/pyment/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mathuin/pyment/git/refs{/sha}","trees_url":"https://api.github.com/repos/mathuin/pyment/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mathuin/pyment/statuses/{sha}","languages_url":"https://api.github.com/repos/mathuin/pyment/languages","stargazers_url":"https://api.github.com/repos/mathuin/pyment/stargazers","contributors_url":"https://api.github.com/repos/mathuin/pyment/contributors","subscribers_url":"https://api.github.com/repos/mathuin/pyment/subscribers","subscription_url":"https://api.github.com/repos/mathuin/pyment/subscription","commits_url":"https://api.github.com/repos/mathuin/pyment/commits{/sha}","git_commits_url":"https://api.github.com/repos/mathuin/pyment/git/commits{/sha}","comments_url":"https://api.github.com/repos/mathuin/pyment/comments{/number}","issue_comment_url":"https://api.github.com/repos/mathuin/pyment/issues/comments{/number}","contents_url":"https://api.github.com/repos/mathuin/pyment/contents/{+path}","compare_url":"https://api.github.com/repos/mathuin/pyment/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mathuin/pyment/merges","archive_url":"https://api.github.com/repos/mathuin/pyment/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mathuin/pyment/downloads","issues_url":"https://api.github.com/repos/mathuin/pyment/issues{/number}","pulls_url":"https://api.github.com/repos/mathuin/pyment/pulls{/number}","milestones_url":"https://api.github.com/repos/mathuin/pyment/milestones{/number}","notifications_url":"https://api.github.com/repos/mathuin/pyment/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mathuin/pyment/labels{/name}","releases_url":"https://api.github.com/repos/mathuin/pyment/releases{/id}","created_at":"2012-09-27T22:10:50Z","updated_at":"2015-04-15T19:20:24Z","pushed_at":"2015-04-18T17:30:49Z","git_url":"git://github.com/mathuin/pyment.git","ssh_url":"git@github.com:mathuin/pyment.git","clone_url":"https://github.com/mathuin/pyment.git","svn_url":"https://github.com/mathuin/pyment","homepage":null,"size":896,"stargazers_count":2,"watchers_count":2,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":16,"forks":0,"open_issues":16,"watchers":2,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/mathuin/pyment/pulls/79"},"html":{"href":"https://github.com/mathuin/pyment/pull/79"},"issue":{"href":"https://api.github.com/repos/mathuin/pyment/issues/79"},"comments":{"href":"https://api.github.com/repos/mathuin/pyment/issues/79/comments"},"review_comments":{"href":"https://api.github.com/repos/mathuin/pyment/pulls/79/comments"},"review_comment":{"href":"https://api.github.com/repos/mathuin/pyment/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/mathuin/pyment/pulls/79/commits"},"statuses":{"href":"https://api.github.com/repos/mathuin/pyment/statuses/885660d8422de4b3fe2a415b23cf141801823262"}}}}