{"action":"created","comment":{"url":"https://api.github.com/repos/Sylius/Sylius/pulls/comments/45604569","id":45604569,"diff_hunk":"@@ -0,0 +1,50 @@\n+<?php\n+\n+/*\n+ * This file is part of the Sylius package.\n+ *\n+ * (c) Paweł Jędrzejewski\n+ *\n+ * For the full copyright and license information, please view the LICENSE\n+ * file that was distributed with this source code.\n+ */\n+\n+namespace Sylius\\Bundle\\AttributeBundle\\Form\\Type\\AttributeType;\n+\n+use Symfony\\Component\\Form\\AbstractType;\n+use Symfony\\Component\\Form\\FormBuilderInterface;\n+use Symfony\\Component\\OptionsResolver\\OptionsResolver;\n+\n+/**\n+ * @author Mateusz Zalewski <mateusz.zalewski@lakion.com>\n+ */\n+class CheckboxAttributeTypeType extends AbstractType","path":"src/Sylius/Bundle/AttributeBundle/Form/Type/AttributeType/CheckboxAttributeTypeType.php","position":21,"original_position":21,"commit_id":"205a42d873344d2944e65a7c534624c5a48d45a9","original_commit_id":"205a42d873344d2944e65a7c534624c5a48d45a9","user":{"login":"pjedrzejewski","id":614970,"avatar_url":"https://avatars.githubusercontent.com/u/614970?v=3","gravatar_id":"","url":"https://api.github.com/users/pjedrzejewski","html_url":"https://github.com/pjedrzejewski","followers_url":"https://api.github.com/users/pjedrzejewski/followers","following_url":"https://api.github.com/users/pjedrzejewski/following{/other_user}","gists_url":"https://api.github.com/users/pjedrzejewski/gists{/gist_id}","starred_url":"https://api.github.com/users/pjedrzejewski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pjedrzejewski/subscriptions","organizations_url":"https://api.github.com/users/pjedrzejewski/orgs","repos_url":"https://api.github.com/users/pjedrzejewski/repos","events_url":"https://api.github.com/users/pjedrzejewski/events{/privacy}","received_events_url":"https://api.github.com/users/pjedrzejewski/received_events","type":"User","site_admin":false},"body":"Hehe, maybe we can skip the TypeType everywhere?","created_at":"2015-11-23T13:54:50Z","updated_at":"2015-11-23T13:54:50Z","html_url":"https://github.com/Sylius/Sylius/pull/3608#discussion_r45604569","pull_request_url":"https://api.github.com/repos/Sylius/Sylius/pulls/3608","_links":{"self":{"href":"https://api.github.com/repos/Sylius/Sylius/pulls/comments/45604569"},"html":{"href":"https://github.com/Sylius/Sylius/pull/3608#discussion_r45604569"},"pull_request":{"href":"https://api.github.com/repos/Sylius/Sylius/pulls/3608"}}},"pull_request":{"url":"https://api.github.com/repos/Sylius/Sylius/pulls/3608","id":51522410,"html_url":"https://github.com/Sylius/Sylius/pull/3608","diff_url":"https://github.com/Sylius/Sylius/pull/3608.diff","patch_url":"https://github.com/Sylius/Sylius/pull/3608.patch","issue_url":"https://api.github.com/repos/Sylius/Sylius/issues/3608","number":3608,"state":"open","locked":false,"title":"[WIP] [Attribute] Attribute types system modification","user":{"login":"Zales0123","id":6212718,"avatar_url":"https://avatars.githubusercontent.com/u/6212718?v=3","gravatar_id":"","url":"https://api.github.com/users/Zales0123","html_url":"https://github.com/Zales0123","followers_url":"https://api.github.com/users/Zales0123/followers","following_url":"https://api.github.com/users/Zales0123/following{/other_user}","gists_url":"https://api.github.com/users/Zales0123/gists{/gist_id}","starred_url":"https://api.github.com/users/Zales0123/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Zales0123/subscriptions","organizations_url":"https://api.github.com/users/Zales0123/orgs","repos_url":"https://api.github.com/users/Zales0123/repos","events_url":"https://api.github.com/users/Zales0123/events{/privacy}","received_events_url":"https://api.github.com/users/Zales0123/received_events","type":"User","site_admin":false},"body":"| Q             | A\r\n| ------------- | ---\r\n| Bug fix?      | no\r\n| New feature?  | yes\r\n| BC breaks?    | yes\r\n| Deprecations? | no\r\n| Fixed tickets |\r\n| License       | MIT\r\n| Doc PR        | https://github.com/Sylius/Sylius-Docs/pull/369\r\n\r\nPR contains basic implementation of new attribute types system. Each attribute type is now separate service, which is defined with type, storage type, form type etc. ``AttributeValue`` value is stored in database based on attribute type ``storageType``.\r\nFor now, there are few simple attribute types implemented:\r\n- checkbox\r\n- datetime\r\n- integer\r\n- percent\r\n- textarea\r\n- text\r\n\r\nEach of them has corresponding form type and it's name is set as ``'sylius_attribute_type_'.$type``.\r\nAlso creating attribute and adding attribute to product UI's have changed a little bit.\r\n\r\nAttribute type is chosen as a first step of creation and it's not possible to change it later:\r\n![attribute-type-picker](https://cloud.githubusercontent.com/assets/6212718/11337118/d00018b8-91ea-11e5-9054-a49fa0e7fdb3.png)\r\n![attribute-create](https://cloud.githubusercontent.com/assets/6212718/11337124/d59135b4-91ea-11e5-98bc-76f2d67e9790.png)\r\n\r\nWhile adding attribute to product, we first choose target attributes from modal. It is possible to pick more than one attribute at once. Added attribute forms are rendered with AJAX request.\r\n![attribute-picker](https://cloud.githubusercontent.com/assets/6212718/11337338/8c95ae06-91ec-11e5-8901-e1df083996bb.png)\r\n![adding-attribute](https://cloud.githubusercontent.com/assets/6212718/11337344/97f3c8f0-91ec-11e5-8ee5-a3e87792c18f.png)\r\n\r\nIt is *really* preliminary PR, so there is lots of work to do:\r\n- [ ] add options to attributes (e.g. min/max length to text, start/end date to datetime etc.)\r\n- [ ] add an awesome validation system, that will allows to validate easily each attribute type\r\n- [ ] implement some more default types (I would appreciate any ideas, as my creativity is unfortunately limited :))\r\n- [ ] work on decoupling (I don't know where, but I'm pretty sure I've broke something :smile:)","created_at":"2015-11-23T13:24:53Z","updated_at":"2015-11-23T13:54:50Z","closed_at":null,"merged_at":null,"merge_commit_sha":"60e6f7be885bd4ab670cea76e9a068ce94f8215c","assignee":null,"milestone":{"url":"https://api.github.com/repos/Sylius/Sylius/milestones/4","html_url":"https://github.com/Sylius/Sylius/milestones/v0.17.0","labels_url":"https://api.github.com/repos/Sylius/Sylius/milestones/4/labels","id":1104562,"number":4,"title":"v0.17.0","description":"Version v0.17.0 of Sylius platform.","creator":{"login":"pjedrzejewski","id":614970,"avatar_url":"https://avatars.githubusercontent.com/u/614970?v=3","gravatar_id":"","url":"https://api.github.com/users/pjedrzejewski","html_url":"https://github.com/pjedrzejewski","followers_url":"https://api.github.com/users/pjedrzejewski/followers","following_url":"https://api.github.com/users/pjedrzejewski/following{/other_user}","gists_url":"https://api.github.com/users/pjedrzejewski/gists{/gist_id}","starred_url":"https://api.github.com/users/pjedrzejewski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pjedrzejewski/subscriptions","organizations_url":"https://api.github.com/users/pjedrzejewski/orgs","repos_url":"https://api.github.com/users/pjedrzejewski/repos","events_url":"https://api.github.com/users/pjedrzejewski/events{/privacy}","received_events_url":"https://api.github.com/users/pjedrzejewski/received_events","type":"User","site_admin":false},"open_issues":19,"closed_issues":5,"state":"open","created_at":"2015-05-11T11:10:11Z","updated_at":"2015-11-23T13:51:45Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/Sylius/Sylius/pulls/3608/commits","review_comments_url":"https://api.github.com/repos/Sylius/Sylius/pulls/3608/comments","review_comment_url":"https://api.github.com/repos/Sylius/Sylius/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Sylius/Sylius/issues/3608/comments","statuses_url":"https://api.github.com/repos/Sylius/Sylius/statuses/205a42d873344d2944e65a7c534624c5a48d45a9","head":{"label":"Zales0123:attribute-types-system-modification","ref":"attribute-types-system-modification","sha":"205a42d873344d2944e65a7c534624c5a48d45a9","user":{"login":"Zales0123","id":6212718,"avatar_url":"https://avatars.githubusercontent.com/u/6212718?v=3","gravatar_id":"","url":"https://api.github.com/users/Zales0123","html_url":"https://github.com/Zales0123","followers_url":"https://api.github.com/users/Zales0123/followers","following_url":"https://api.github.com/users/Zales0123/following{/other_user}","gists_url":"https://api.github.com/users/Zales0123/gists{/gist_id}","starred_url":"https://api.github.com/users/Zales0123/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Zales0123/subscriptions","organizations_url":"https://api.github.com/users/Zales0123/orgs","repos_url":"https://api.github.com/users/Zales0123/repos","events_url":"https://api.github.com/users/Zales0123/events{/privacy}","received_events_url":"https://api.github.com/users/Zales0123/received_events","type":"User","site_admin":false},"repo":{"id":28911466,"name":"Sylius","full_name":"Zales0123/Sylius","owner":{"login":"Zales0123","id":6212718,"avatar_url":"https://avatars.githubusercontent.com/u/6212718?v=3","gravatar_id":"","url":"https://api.github.com/users/Zales0123","html_url":"https://github.com/Zales0123","followers_url":"https://api.github.com/users/Zales0123/followers","following_url":"https://api.github.com/users/Zales0123/following{/other_user}","gists_url":"https://api.github.com/users/Zales0123/gists{/gist_id}","starred_url":"https://api.github.com/users/Zales0123/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Zales0123/subscriptions","organizations_url":"https://api.github.com/users/Zales0123/orgs","repos_url":"https://api.github.com/users/Zales0123/repos","events_url":"https://api.github.com/users/Zales0123/events{/privacy}","received_events_url":"https://api.github.com/users/Zales0123/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Zales0123/Sylius","description":"Modern e-commerce for PHP, based on the Symfony2 framework.","fork":true,"url":"https://api.github.com/repos/Zales0123/Sylius","forks_url":"https://api.github.com/repos/Zales0123/Sylius/forks","keys_url":"https://api.github.com/repos/Zales0123/Sylius/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Zales0123/Sylius/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Zales0123/Sylius/teams","hooks_url":"https://api.github.com/repos/Zales0123/Sylius/hooks","issue_events_url":"https://api.github.com/repos/Zales0123/Sylius/issues/events{/number}","events_url":"https://api.github.com/repos/Zales0123/Sylius/events","assignees_url":"https://api.github.com/repos/Zales0123/Sylius/assignees{/user}","branches_url":"https://api.github.com/repos/Zales0123/Sylius/branches{/branch}","tags_url":"https://api.github.com/repos/Zales0123/Sylius/tags","blobs_url":"https://api.github.com/repos/Zales0123/Sylius/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Zales0123/Sylius/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Zales0123/Sylius/git/refs{/sha}","trees_url":"https://api.github.com/repos/Zales0123/Sylius/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Zales0123/Sylius/statuses/{sha}","languages_url":"https://api.github.com/repos/Zales0123/Sylius/languages","stargazers_url":"https://api.github.com/repos/Zales0123/Sylius/stargazers","contributors_url":"https://api.github.com/repos/Zales0123/Sylius/contributors","subscribers_url":"https://api.github.com/repos/Zales0123/Sylius/subscribers","subscription_url":"https://api.github.com/repos/Zales0123/Sylius/subscription","commits_url":"https://api.github.com/repos/Zales0123/Sylius/commits{/sha}","git_commits_url":"https://api.github.com/repos/Zales0123/Sylius/git/commits{/sha}","comments_url":"https://api.github.com/repos/Zales0123/Sylius/comments{/number}","issue_comment_url":"https://api.github.com/repos/Zales0123/Sylius/issues/comments{/number}","contents_url":"https://api.github.com/repos/Zales0123/Sylius/contents/{+path}","compare_url":"https://api.github.com/repos/Zales0123/Sylius/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Zales0123/Sylius/merges","archive_url":"https://api.github.com/repos/Zales0123/Sylius/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Zales0123/Sylius/downloads","issues_url":"https://api.github.com/repos/Zales0123/Sylius/issues{/number}","pulls_url":"https://api.github.com/repos/Zales0123/Sylius/pulls{/number}","milestones_url":"https://api.github.com/repos/Zales0123/Sylius/milestones{/number}","notifications_url":"https://api.github.com/repos/Zales0123/Sylius/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Zales0123/Sylius/labels{/name}","releases_url":"https://api.github.com/repos/Zales0123/Sylius/releases{/id}","created_at":"2015-01-07T11:20:44Z","updated_at":"2015-05-06T12:22:35Z","pushed_at":"2015-11-23T08:13:08Z","git_url":"git://github.com/Zales0123/Sylius.git","ssh_url":"git@github.com:Zales0123/Sylius.git","clone_url":"https://github.com/Zales0123/Sylius.git","svn_url":"https://github.com/Zales0123/Sylius","homepage":"Sylius.org","size":20343,"stargazers_count":0,"watchers_count":0,"language":"PHP","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"Sylius:master","ref":"master","sha":"8f6cac4575defa1b029b5bdefea460c1c696153d","user":{"login":"Sylius","id":719423,"avatar_url":"https://avatars.githubusercontent.com/u/719423?v=3","gravatar_id":"","url":"https://api.github.com/users/Sylius","html_url":"https://github.com/Sylius","followers_url":"https://api.github.com/users/Sylius/followers","following_url":"https://api.github.com/users/Sylius/following{/other_user}","gists_url":"https://api.github.com/users/Sylius/gists{/gist_id}","starred_url":"https://api.github.com/users/Sylius/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Sylius/subscriptions","organizations_url":"https://api.github.com/users/Sylius/orgs","repos_url":"https://api.github.com/users/Sylius/repos","events_url":"https://api.github.com/users/Sylius/events{/privacy}","received_events_url":"https://api.github.com/users/Sylius/received_events","type":"Organization","site_admin":false},"repo":{"id":2717549,"name":"Sylius","full_name":"Sylius/Sylius","owner":{"login":"Sylius","id":719423,"avatar_url":"https://avatars.githubusercontent.com/u/719423?v=3","gravatar_id":"","url":"https://api.github.com/users/Sylius","html_url":"https://github.com/Sylius","followers_url":"https://api.github.com/users/Sylius/followers","following_url":"https://api.github.com/users/Sylius/following{/other_user}","gists_url":"https://api.github.com/users/Sylius/gists{/gist_id}","starred_url":"https://api.github.com/users/Sylius/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Sylius/subscriptions","organizations_url":"https://api.github.com/users/Sylius/orgs","repos_url":"https://api.github.com/users/Sylius/repos","events_url":"https://api.github.com/users/Sylius/events{/privacy}","received_events_url":"https://api.github.com/users/Sylius/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Sylius/Sylius","description":"Modern e-commerce for PHP, based on the Symfony2 framework.","fork":false,"url":"https://api.github.com/repos/Sylius/Sylius","forks_url":"https://api.github.com/repos/Sylius/Sylius/forks","keys_url":"https://api.github.com/repos/Sylius/Sylius/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Sylius/Sylius/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Sylius/Sylius/teams","hooks_url":"https://api.github.com/repos/Sylius/Sylius/hooks","issue_events_url":"https://api.github.com/repos/Sylius/Sylius/issues/events{/number}","events_url":"https://api.github.com/repos/Sylius/Sylius/events","assignees_url":"https://api.github.com/repos/Sylius/Sylius/assignees{/user}","branches_url":"https://api.github.com/repos/Sylius/Sylius/branches{/branch}","tags_url":"https://api.github.com/repos/Sylius/Sylius/tags","blobs_url":"https://api.github.com/repos/Sylius/Sylius/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Sylius/Sylius/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Sylius/Sylius/git/refs{/sha}","trees_url":"https://api.github.com/repos/Sylius/Sylius/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Sylius/Sylius/statuses/{sha}","languages_url":"https://api.github.com/repos/Sylius/Sylius/languages","stargazers_url":"https://api.github.com/repos/Sylius/Sylius/stargazers","contributors_url":"https://api.github.com/repos/Sylius/Sylius/contributors","subscribers_url":"https://api.github.com/repos/Sylius/Sylius/subscribers","subscription_url":"https://api.github.com/repos/Sylius/Sylius/subscription","commits_url":"https://api.github.com/repos/Sylius/Sylius/commits{/sha}","git_commits_url":"https://api.github.com/repos/Sylius/Sylius/git/commits{/sha}","comments_url":"https://api.github.com/repos/Sylius/Sylius/comments{/number}","issue_comment_url":"https://api.github.com/repos/Sylius/Sylius/issues/comments{/number}","contents_url":"https://api.github.com/repos/Sylius/Sylius/contents/{+path}","compare_url":"https://api.github.com/repos/Sylius/Sylius/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Sylius/Sylius/merges","archive_url":"https://api.github.com/repos/Sylius/Sylius/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Sylius/Sylius/downloads","issues_url":"https://api.github.com/repos/Sylius/Sylius/issues{/number}","pulls_url":"https://api.github.com/repos/Sylius/Sylius/pulls{/number}","milestones_url":"https://api.github.com/repos/Sylius/Sylius/milestones{/number}","notifications_url":"https://api.github.com/repos/Sylius/Sylius/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Sylius/Sylius/labels{/name}","releases_url":"https://api.github.com/repos/Sylius/Sylius/releases{/id}","created_at":"2011-11-05T22:05:52Z","updated_at":"2015-11-22T23:04:26Z","pushed_at":"2015-11-23T13:25:23Z","git_url":"git://github.com/Sylius/Sylius.git","ssh_url":"git@github.com:Sylius/Sylius.git","clone_url":"https://github.com/Sylius/Sylius.git","svn_url":"https://github.com/Sylius/Sylius","homepage":"Sylius.org","size":45594,"stargazers_count":2060,"watchers_count":2060,"language":"PHP","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":755,"mirror_url":null,"open_issues_count":561,"forks":755,"open_issues":561,"watchers":2060,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Sylius/Sylius/pulls/3608"},"html":{"href":"https://github.com/Sylius/Sylius/pull/3608"},"issue":{"href":"https://api.github.com/repos/Sylius/Sylius/issues/3608"},"comments":{"href":"https://api.github.com/repos/Sylius/Sylius/issues/3608/comments"},"review_comments":{"href":"https://api.github.com/repos/Sylius/Sylius/pulls/3608/comments"},"review_comment":{"href":"https://api.github.com/repos/Sylius/Sylius/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Sylius/Sylius/pulls/3608/commits"},"statuses":{"href":"https://api.github.com/repos/Sylius/Sylius/statuses/205a42d873344d2944e65a7c534624c5a48d45a9"}}}}