)]}'
{"mistraldashboard/api.py":[{"author":{"_account_id":7700,"name":"Nikolay Mahotkin","email":"nikolay.makhotkin@gmail.com","username":"nmakhotkin"},"change_message_id":"2bb31a08bf56a832e8fa3a0032a6f2a247cad9e5","unresolved":false,"context_lines":[{"line_number":294,"context_line":"    return mistralclient(request).actions.update(action_definition)"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"def action_run(request, action_name, input, params):"},{"line_number":298,"context_line":"    \"\"\"Run specific action execution."},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"    :param action_name: Action name"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a5ae5dd_6063de42","line":297,"range":{"start_line":297,"start_character":4,"end_line":297,"end_character":14},"updated":"2016-02-08 10:04:41.000000000","message":"I thought it was done in patch related to action executions. Hmm is it a mistake?","commit_id":"6ecbb4870918d7c0a8635160b1d194a3a755b10b"},{"author":{"_account_id":17089,"name":"Gal Margalit","email":"galmargalit@gmail.com","username":"Gal"},"change_message_id":"0283c7627588c5a72a0c7fd59d107c635665cff9","unresolved":false,"context_lines":[{"line_number":294,"context_line":"    return mistralclient(request).actions.update(action_definition)"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"def action_run(request, action_name, input, params):"},{"line_number":298,"context_line":"    \"\"\"Run specific action execution."},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"    :param action_name: Action name"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a5ae5dd_60bf5e61","line":297,"range":{"start_line":297,"start_character":4,"end_line":297,"end_character":14},"in_reply_to":"5a5ae5dd_6063de42","updated":"2016-02-08 10:08:18.000000000","message":"just moved the function up to be with action commands","commit_id":"6ecbb4870918d7c0a8635160b1d194a3a755b10b"},{"author":{"_account_id":17089,"name":"Gal Margalit","email":"galmargalit@gmail.com","username":"Gal"},"change_message_id":"719d3096092af9f42ee84dd4983ede5db07109ee","unresolved":false,"context_lines":[{"line_number":373,"context_line":"    :param count: Number of wanted executions \u003cinteger\u003e"},{"line_number":374,"context_line":"    \"\"\""},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"    workflow_input \u003d convert_empty_string_to_none(workflow_input)"},{"line_number":377,"context_line":"    workflow_params \u003d convert_empty_string_to_none(workflow_params)"},{"line_number":378,"context_line":"    pattern \u003d convert_empty_string_to_none(pattern)"},{"line_number":379,"context_line":"    first_time \u003d convert_empty_string_to_none(first_time)"},{"line_number":380,"context_line":"    count \u003d convert_empty_string_to_none(count)"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"    return mistralclient(request).cron_triggers.create("},{"line_number":383,"context_line":"        cron_trigger_name,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a5ae5dd_205726cb","line":380,"range":{"start_line":376,"start_character":2,"end_line":380,"end_character":47},"updated":"2016-02-08 09:54:35.000000000","message":"on a second thought, this logic should be in the view (form.py)","commit_id":"6ecbb4870918d7c0a8635160b1d194a3a755b10b"}],"mistraldashboard/cron_triggers/forms.py":[{"author":{"_account_id":18238,"name":"Hardik Parekh","email":"hardik.parekh047@gmail.com","username":"hparekh"},"change_message_id":"7344f74ede4fbe5b0a26c62b3df55f39430d55a8","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    name \u003d forms.CharField("},{"line_number":30,"context_line":"        max_length\u003d255,"},{"line_number":31,"context_line":"        label\u003d_(\"Name\"),"},{"line_number":32,"context_line":"        help_text\u003d_(\u0027Cron trigger name.\u0027),"},{"line_number":33,"context_line":"        required\u003dTrue)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    workflows \u003d forms.ChoiceField("}],"source_content_type":"text/x-python","patch_set":1,"id":"ba63e191_cfd07fcc","line":32,"range":{"start_line":32,"start_character":21,"end_line":32,"end_character":38},"updated":"2016-01-19 02:29:44.000000000","message":"Soft:\nFor Naming consistency and this string will be displayed to user, I would recommend to use same Letters (Camel case).\n\nUse \"Cron Trigger\".","commit_id":"aa599500a08bfa5100eae01d970bb2ab8a96d80d"},{"author":{"_account_id":18238,"name":"Hardik Parekh","email":"hardik.parekh047@gmail.com","username":"hparekh"},"change_message_id":"7344f74ede4fbe5b0a26c62b3df55f39430d55a8","unresolved":false,"context_lines":[{"line_number":119,"context_line":"    )"},{"line_number":120,"context_line":"    schedule_pattern \u003d forms.CharField("},{"line_number":121,"context_line":"        label\u003d_(\u0027Pattern (* * * * *)\u0027),"},{"line_number":122,"context_line":"        help_text\u003d_(\u0027Cron trigger pattern, mind the space between each char.\u0027),"},{"line_number":123,"context_line":"        widget\u003dforms.widgets.TextInput(),"},{"line_number":124,"context_line":"        required\u003dFalse"},{"line_number":125,"context_line":"    )"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba63e191_afd8abf0","line":122,"range":{"start_line":122,"start_character":26,"end_line":122,"end_character":33},"updated":"2016-01-19 02:29:44.000000000","message":"Same as above","commit_id":"aa599500a08bfa5100eae01d970bb2ab8a96d80d"},{"author":{"_account_id":18238,"name":"Hardik Parekh","email":"hardik.parekh047@gmail.com","username":"hparekh"},"change_message_id":"7344f74ede4fbe5b0a26c62b3df55f39430d55a8","unresolved":false,"context_lines":[{"line_number":171,"context_line":""},{"line_number":172,"context_line":"        return cleaned_data"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"    @handle_errors(_(\"Unable to create Cron trigger\"), [])"},{"line_number":175,"context_line":"    def handle(self, request, data):"},{"line_number":176,"context_line":"        try:"},{"line_number":177,"context_line":"            api.cron_trigger_create("}],"source_content_type":"text/x-python","patch_set":1,"id":"ba63e191_0f9537e3","line":174,"range":{"start_line":174,"start_character":44,"end_line":174,"end_character":51},"updated":"2016-01-19 02:29:44.000000000","message":"Same as above","commit_id":"aa599500a08bfa5100eae01d970bb2ab8a96d80d"},{"author":{"_account_id":18238,"name":"Hardik Parekh","email":"hardik.parekh047@gmail.com","username":"hparekh"},"change_message_id":"7344f74ede4fbe5b0a26c62b3df55f39430d55a8","unresolved":false,"context_lines":[{"line_number":184,"context_line":"                data[\u0027first_time\u0027],"},{"line_number":185,"context_line":"                data[\u0027schedule_count\u0027],"},{"line_number":186,"context_line":"            )"},{"line_number":187,"context_line":"            msg \u003d _(\u0027Successfully created cron trigger.\u0027)"},{"line_number":188,"context_line":"            messages.success(request, msg)"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba63e191_4ffc8f3e","line":187,"range":{"start_line":187,"start_character":42,"end_line":187,"end_character":54},"updated":"2016-01-19 02:29:44.000000000","message":"Same as above use camel case. \"Cron Trigger\"","commit_id":"aa599500a08bfa5100eae01d970bb2ab8a96d80d"},{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"e94bc3359cb16cc56f065099b4c42cfec55b3939","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        help_text\u003d_(\u0027Cron Trigger name.\u0027),"},{"line_number":33,"context_line":"        required\u003dTrue)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    workflows \u003d forms.ChoiceField("},{"line_number":36,"context_line":"        label\u003d_(\u0027Workflow\u0027),"},{"line_number":37,"context_line":"        help_text\u003d_(\u0027Workflow name.\u0027),"},{"line_number":38,"context_line":"        choices\u003d[(\u0027file\u0027, _(\u0027File\u0027)),"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_e72231b9","line":35,"updated":"2016-01-27 23:59:26.000000000","message":"Why it\u0027s workflows? workflow?\n\nSince we support(and recommend) create cron-trigger using workflow-id, workflow name will be deprecated in M. So the first priority we need to support in dashboard is workflow id, I think.","commit_id":"076e67662ea15a532ef73b4244225a3d95c89bc4"},{"author":{"_account_id":17089,"name":"Gal Margalit","email":"galmargalit@gmail.com","username":"Gal"},"change_message_id":"04285236f91e23b5da4e0d9f55913eb5b1ed07c9","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        help_text\u003d_(\u0027Cron Trigger name.\u0027),"},{"line_number":33,"context_line":"        required\u003dTrue)"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    workflows \u003d forms.ChoiceField("},{"line_number":36,"context_line":"        label\u003d_(\u0027Workflow\u0027),"},{"line_number":37,"context_line":"        help_text\u003d_(\u0027Workflow name.\u0027),"},{"line_number":38,"context_line":"        choices\u003d[(\u0027file\u0027, _(\u0027File\u0027)),"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_928852e9","line":35,"in_reply_to":"7a5de9d1_e72231b9","updated":"2016-01-28 08:50:25.000000000","message":"thanks","commit_id":"076e67662ea15a532ef73b4244225a3d95c89bc4"},{"author":{"_account_id":8592,"name":"Anastasia Kuznetsova","email":"akuznetsova@mirantis.com","username":"nastya-kuz"},"change_message_id":"5e43b186dbb58cb23938990cd60051590c7973a0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- coding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2016 - Nokia."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_eac8ff56","line":1,"updated":"2016-02-08 13:53:54.000000000","message":"As far as I know this line isn\u0027t needed.","commit_id":"08b4f8666a4b41578385763456abadcbbd36afd7"},{"author":{"_account_id":17089,"name":"Gal Margalit","email":"galmargalit@gmail.com","username":"Gal"},"change_message_id":"bb75e838b5583c991099aecd23150fefa8e578bf","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- coding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2016 - Nokia."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_a9ad23ea","line":1,"in_reply_to":"5a5ae5dd_eac8ff56","updated":"2016-02-08 19:13:44.000000000","message":"OK","commit_id":"08b4f8666a4b41578385763456abadcbbd36afd7"},{"author":{"_account_id":8592,"name":"Anastasia Kuznetsova","email":"akuznetsova@mirantis.com","username":"nastya-kuz"},"change_message_id":"5e43b186dbb58cb23938990cd60051590c7973a0","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        max_length\u003d255,"},{"line_number":32,"context_line":"        label\u003d_(\"Name\"),"},{"line_number":33,"context_line":"        help_text\u003d_(\u0027Cron Trigger name.\u0027),"},{"line_number":34,"context_line":"        required\u003dTrue)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    workflow_id \u003d forms.ChoiceField("},{"line_number":37,"context_line":"        label\u003d_(\u0027Workflow ID\u0027),"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_6ae3afd9","line":34,"range":{"start_line":34,"start_character":21,"end_line":34,"end_character":22},"updated":"2016-02-08 13:53:54.000000000","message":"Move closing parenthesis to the new line.","commit_id":"08b4f8666a4b41578385763456abadcbbd36afd7"},{"author":{"_account_id":17089,"name":"Gal Margalit","email":"galmargalit@gmail.com","username":"Gal"},"change_message_id":"bb75e838b5583c991099aecd23150fefa8e578bf","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        max_length\u003d255,"},{"line_number":32,"context_line":"        label\u003d_(\"Name\"),"},{"line_number":33,"context_line":"        help_text\u003d_(\u0027Cron Trigger name.\u0027),"},{"line_number":34,"context_line":"        required\u003dTrue)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    workflow_id \u003d forms.ChoiceField("},{"line_number":37,"context_line":"        label\u003d_(\u0027Workflow ID\u0027),"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_09855758","line":34,"range":{"start_line":34,"start_character":21,"end_line":34,"end_character":22},"in_reply_to":"5a5ae5dd_6ae3afd9","updated":"2016-02-08 19:13:44.000000000","message":"thanks","commit_id":"08b4f8666a4b41578385763456abadcbbd36afd7"},{"author":{"_account_id":8592,"name":"Anastasia Kuznetsova","email":"akuznetsova@mirantis.com","username":"nastya-kuz"},"change_message_id":"5e43b186dbb58cb23938990cd60051590c7973a0","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        help_text\u003d_(\u0027Select Workflow ID.\u0027),"},{"line_number":39,"context_line":"        widget\u003dforms.Select("},{"line_number":40,"context_line":"            attrs\u003d{\u0027class\u0027: \u0027switchable\u0027,"},{"line_number":41,"context_line":"                   \u0027data-slug\u0027: \u0027workflow_select\u0027})"},{"line_number":42,"context_line":"    )"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    input_source \u003d forms.ChoiceField("}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_4a07d381","line":41,"range":{"start_line":41,"start_character":50,"end_line":41,"end_character":51},"updated":"2016-02-08 13:53:54.000000000","message":"Move closing parenthesis to the new line","commit_id":"08b4f8666a4b41578385763456abadcbbd36afd7"},{"author":{"_account_id":17089,"name":"Gal Margalit","email":"galmargalit@gmail.com","username":"Gal"},"change_message_id":"bb75e838b5583c991099aecd23150fefa8e578bf","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        help_text\u003d_(\u0027Select Workflow ID.\u0027),"},{"line_number":39,"context_line":"        widget\u003dforms.Select("},{"line_number":40,"context_line":"            attrs\u003d{\u0027class\u0027: \u0027switchable\u0027,"},{"line_number":41,"context_line":"                   \u0027data-slug\u0027: \u0027workflow_select\u0027})"},{"line_number":42,"context_line":"    )"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    input_source \u003d forms.ChoiceField("}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_29885370","line":41,"range":{"start_line":41,"start_character":50,"end_line":41,"end_character":51},"in_reply_to":"5a5ae5dd_4a07d381","updated":"2016-02-08 19:13:44.000000000","message":"thanks","commit_id":"08b4f8666a4b41578385763456abadcbbd36afd7"},{"author":{"_account_id":8592,"name":"Anastasia Kuznetsova","email":"akuznetsova@mirantis.com","username":"nastya-kuz"},"change_message_id":"5e43b186dbb58cb23938990cd60051590c7973a0","unresolved":false,"context_lines":[{"line_number":81,"context_line":"                 (\u0027raw\u0027, _(\u0027Direct Input\u0027))],"},{"line_number":82,"context_line":"        widget\u003dforms.Select("},{"line_number":83,"context_line":"            attrs\u003d{\u0027class\u0027: \u0027switchable\u0027,"},{"line_number":84,"context_line":"                   \u0027data-slug\u0027: \u0027paramssource\u0027})"},{"line_number":85,"context_line":"    )"},{"line_number":86,"context_line":"    params_upload \u003d forms.FileField("},{"line_number":87,"context_line":"        label\u003d_(\u0027Params File\u0027),"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_aaec47bb","line":84,"range":{"start_line":84,"start_character":47,"end_line":84,"end_character":48},"updated":"2016-02-08 13:53:54.000000000","message":"ditto","commit_id":"08b4f8666a4b41578385763456abadcbbd36afd7"},{"author":{"_account_id":17089,"name":"Gal Margalit","email":"galmargalit@gmail.com","username":"Gal"},"change_message_id":"bb75e838b5583c991099aecd23150fefa8e578bf","unresolved":false,"context_lines":[{"line_number":81,"context_line":"                 (\u0027raw\u0027, _(\u0027Direct Input\u0027))],"},{"line_number":82,"context_line":"        widget\u003dforms.Select("},{"line_number":83,"context_line":"            attrs\u003d{\u0027class\u0027: \u0027switchable\u0027,"},{"line_number":84,"context_line":"                   \u0027data-slug\u0027: \u0027paramssource\u0027})"},{"line_number":85,"context_line":"    )"},{"line_number":86,"context_line":"    params_upload \u003d forms.FileField("},{"line_number":87,"context_line":"        label\u003d_(\u0027Params File\u0027),"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_a994438a","line":84,"range":{"start_line":84,"start_character":47,"end_line":84,"end_character":48},"in_reply_to":"5a5ae5dd_aaec47bb","updated":"2016-02-08 19:13:44.000000000","message":"thanks","commit_id":"08b4f8666a4b41578385763456abadcbbd36afd7"},{"author":{"_account_id":8592,"name":"Anastasia Kuznetsova","email":"akuznetsova@mirantis.com","username":"nastya-kuz"},"change_message_id":"5e43b186dbb58cb23938990cd60051590c7973a0","unresolved":false,"context_lines":[{"line_number":112,"context_line":"    )"},{"line_number":113,"context_line":"    schedule_count \u003d forms.CharField("},{"line_number":114,"context_line":"        label\u003d_(\u0027Count\u0027),"},{"line_number":115,"context_line":"        help_text\u003d_(\u0027Number of wanted executions.\u0027),"},{"line_number":116,"context_line":"        widget\u003dforms.widgets.TextInput(),"},{"line_number":117,"context_line":"        required\u003dFalse"},{"line_number":118,"context_line":"    )"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_0a59db8d","line":115,"range":{"start_line":115,"start_character":31,"end_line":115,"end_character":37},"updated":"2016-02-08 13:53:54.000000000","message":"I guess that it is better to use \"desired\" instead of \"wanted\".","commit_id":"08b4f8666a4b41578385763456abadcbbd36afd7"},{"author":{"_account_id":17089,"name":"Gal Margalit","email":"galmargalit@gmail.com","username":"Gal"},"change_message_id":"bb75e838b5583c991099aecd23150fefa8e578bf","unresolved":false,"context_lines":[{"line_number":112,"context_line":"    )"},{"line_number":113,"context_line":"    schedule_count \u003d forms.CharField("},{"line_number":114,"context_line":"        label\u003d_(\u0027Count\u0027),"},{"line_number":115,"context_line":"        help_text\u003d_(\u0027Number of wanted executions.\u0027),"},{"line_number":116,"context_line":"        widget\u003dforms.widgets.TextInput(),"},{"line_number":117,"context_line":"        required\u003dFalse"},{"line_number":118,"context_line":"    )"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_498fcf74","line":115,"range":{"start_line":115,"start_character":31,"end_line":115,"end_character":37},"in_reply_to":"5a5ae5dd_0a59db8d","updated":"2016-02-08 19:13:44.000000000","message":"agree, thanks","commit_id":"08b4f8666a4b41578385763456abadcbbd36afd7"},{"author":{"_account_id":8592,"name":"Anastasia Kuznetsova","email":"akuznetsova@mirantis.com","username":"nastya-kuz"},"change_message_id":"5e43b186dbb58cb23938990cd60051590c7973a0","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        super(CreateForm, self).__init__(request, *args, **kwargs)"},{"line_number":128,"context_line":"        workflow_list \u003d api.workflow_list(request)"},{"line_number":129,"context_line":"        workflow_id_list \u003d []"},{"line_number":130,"context_line":"        for i in workflow_list:"},{"line_number":131,"context_line":"            workflow_id_list.append((i.id, i.id + \u0027 (\u0027 + i.name + \u0027)\u0027))"},{"line_number":132,"context_line":"        self.fields[\u0027workflow_id\u0027].choices \u003d workflow_id_list"},{"line_number":133,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_aadf67d4","line":130,"range":{"start_line":130,"start_character":12,"end_line":130,"end_character":13},"updated":"2016-02-08 13:53:54.000000000","message":"Let\u0027s change \u0027i\u0027 to \u0027wf\u0027.","commit_id":"08b4f8666a4b41578385763456abadcbbd36afd7"},{"author":{"_account_id":17089,"name":"Gal Margalit","email":"galmargalit@gmail.com","username":"Gal"},"change_message_id":"bb75e838b5583c991099aecd23150fefa8e578bf","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        super(CreateForm, self).__init__(request, *args, **kwargs)"},{"line_number":128,"context_line":"        workflow_list \u003d api.workflow_list(request)"},{"line_number":129,"context_line":"        workflow_id_list \u003d []"},{"line_number":130,"context_line":"        for i in workflow_list:"},{"line_number":131,"context_line":"            workflow_id_list.append((i.id, i.id + \u0027 (\u0027 + i.name + \u0027)\u0027))"},{"line_number":132,"context_line":"        self.fields[\u0027workflow_id\u0027].choices \u003d workflow_id_list"},{"line_number":133,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_698acb65","line":130,"range":{"start_line":130,"start_character":12,"end_line":130,"end_character":13},"in_reply_to":"5a5ae5dd_aadf67d4","updated":"2016-02-08 19:13:44.000000000","message":"thanks","commit_id":"08b4f8666a4b41578385763456abadcbbd36afd7"},{"author":{"_account_id":8592,"name":"Anastasia Kuznetsova","email":"akuznetsova@mirantis.com","username":"nastya-kuz"},"change_message_id":"5e43b186dbb58cb23938990cd60051590c7973a0","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        workflow_list \u003d api.workflow_list(request)"},{"line_number":129,"context_line":"        workflow_id_list \u003d []"},{"line_number":130,"context_line":"        for i in workflow_list:"},{"line_number":131,"context_line":"            workflow_id_list.append((i.id, i.id + \u0027 (\u0027 + i.name + \u0027)\u0027))"},{"line_number":132,"context_line":"        self.fields[\u0027workflow_id\u0027].choices \u003d workflow_id_list"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def clean(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_ca7ae3bc","line":131,"range":{"start_line":131,"start_character":36,"end_line":131,"end_character":70},"updated":"2016-02-08 13:53:54.000000000","message":"I would prefer to use one of the following ways to format string:\n- \"%s ( %s )\" % (str1, str2)\n- \"{id} ( {name} )\".format(id\u003did, name\u003dname)\n\nand do not piece together parts of the string.","commit_id":"08b4f8666a4b41578385763456abadcbbd36afd7"},{"author":{"_account_id":17089,"name":"Gal Margalit","email":"galmargalit@gmail.com","username":"Gal"},"change_message_id":"bb75e838b5583c991099aecd23150fefa8e578bf","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        workflow_list \u003d api.workflow_list(request)"},{"line_number":129,"context_line":"        workflow_id_list \u003d []"},{"line_number":130,"context_line":"        for i in workflow_list:"},{"line_number":131,"context_line":"            workflow_id_list.append((i.id, i.id + \u0027 (\u0027 + i.name + \u0027)\u0027))"},{"line_number":132,"context_line":"        self.fields[\u0027workflow_id\u0027].choices \u003d workflow_id_list"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"    def clean(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_c9f17f02","line":131,"range":{"start_line":131,"start_character":36,"end_line":131,"end_character":70},"in_reply_to":"5a5ae5dd_ca7ae3bc","updated":"2016-02-08 19:13:44.000000000","message":"sometimes javascript gets the better of me :)\nthanks","commit_id":"08b4f8666a4b41578385763456abadcbbd36afd7"},{"author":{"_account_id":8592,"name":"Anastasia Kuznetsova","email":"akuznetsova@mirantis.com","username":"nastya-kuz"},"change_message_id":"5e43b186dbb58cb23938990cd60051590c7973a0","unresolved":false,"context_lines":[{"line_number":189,"context_line":"                data[\u0027workflow_id\u0027],"},{"line_number":190,"context_line":"                data[\u0027input\u0027],"},{"line_number":191,"context_line":"                data[\u0027params\u0027],"},{"line_number":192,"context_line":"                data[\u0027schedule_pattern\u0027],"},{"line_number":193,"context_line":"                data[\u0027first_time\u0027],"},{"line_number":194,"context_line":"                data[\u0027schedule_count\u0027],"},{"line_number":195,"context_line":"            )"},{"line_number":196,"context_line":"            msg \u003d _(\u0027Successfully created Cron Trigger.\u0027)"},{"line_number":197,"context_line":"            messages.success(request, msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_8a05cb14","line":194,"range":{"start_line":192,"start_character":16,"end_line":194,"end_character":39},"updated":"2016-02-08 13:53:54.000000000","message":"None of these fields aren\u0027t required, but if don\u0027t specify all of them we will get an error, how it will be handled here?","commit_id":"08b4f8666a4b41578385763456abadcbbd36afd7"},{"author":{"_account_id":17089,"name":"Gal Margalit","email":"galmargalit@gmail.com","username":"Gal"},"change_message_id":"bb75e838b5583c991099aecd23150fefa8e578bf","unresolved":false,"context_lines":[{"line_number":189,"context_line":"                data[\u0027workflow_id\u0027],"},{"line_number":190,"context_line":"                data[\u0027input\u0027],"},{"line_number":191,"context_line":"                data[\u0027params\u0027],"},{"line_number":192,"context_line":"                data[\u0027schedule_pattern\u0027],"},{"line_number":193,"context_line":"                data[\u0027first_time\u0027],"},{"line_number":194,"context_line":"                data[\u0027schedule_count\u0027],"},{"line_number":195,"context_line":"            )"},{"line_number":196,"context_line":"            msg \u003d _(\u0027Successfully created Cron Trigger.\u0027)"},{"line_number":197,"context_line":"            messages.success(request, msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_496b4f85","line":194,"range":{"start_line":192,"start_character":16,"end_line":194,"end_character":39},"in_reply_to":"5a5ae5dd_8a05cb14","updated":"2016-02-08 19:13:44.000000000","message":"Hi, don\u0027t understand - please elaborate","commit_id":"08b4f8666a4b41578385763456abadcbbd36afd7"}],"mistraldashboard/cron_triggers/tables.py":[{"author":{"_account_id":18238,"name":"Hardik Parekh","email":"hardik.parekh047@gmail.com","username":"hparekh"},"change_message_id":"f4dd0590ba0055d000f902af8c090e32444e0553","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- coding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2016 - Nokia."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_3fe39735","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":23},"updated":"2016-02-09 00:32:21.000000000","message":"remove this line. Same as mentioned in mistraldashboard/cron_triggers/forms.py","commit_id":"08b4f8666a4b41578385763456abadcbbd36afd7"},{"author":{"_account_id":17089,"name":"Gal Margalit","email":"galmargalit@gmail.com","username":"Gal"},"change_message_id":"cda624e62ccbe90d0deec7656ddfe008e4d2a465","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- coding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2016 - Nokia."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_a26e7e94","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":23},"in_reply_to":"5a5ae5dd_3fe39735","updated":"2016-02-09 06:41:00.000000000","message":"ok","commit_id":"08b4f8666a4b41578385763456abadcbbd36afd7"},{"author":{"_account_id":18238,"name":"Hardik Parekh","email":"hardik.parekh047@gmail.com","username":"hparekh"},"change_message_id":"f4dd0590ba0055d000f902af8c090e32444e0553","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        table_actions \u003d ("},{"line_number":113,"context_line":"            tables.FilterAction,"},{"line_number":114,"context_line":"            CreateCronTrigger,"},{"line_number":115,"context_line":"            DeleteCronTrigger)"},{"line_number":116,"context_line":"        row_actions \u003d (DeleteCronTrigger,)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_9fc88baa","line":115,"range":{"start_line":115,"start_character":29,"end_line":115,"end_character":30},"updated":"2016-02-09 00:32:21.000000000","message":"move parenthesis to new line","commit_id":"08b4f8666a4b41578385763456abadcbbd36afd7"},{"author":{"_account_id":17089,"name":"Gal Margalit","email":"galmargalit@gmail.com","username":"Gal"},"change_message_id":"cda624e62ccbe90d0deec7656ddfe008e4d2a465","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        table_actions \u003d ("},{"line_number":113,"context_line":"            tables.FilterAction,"},{"line_number":114,"context_line":"            CreateCronTrigger,"},{"line_number":115,"context_line":"            DeleteCronTrigger)"},{"line_number":116,"context_line":"        row_actions \u003d (DeleteCronTrigger,)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a5ae5dd_426b0a86","line":115,"range":{"start_line":115,"start_character":29,"end_line":115,"end_character":30},"in_reply_to":"5a5ae5dd_9fc88baa","updated":"2016-02-09 06:41:00.000000000","message":"thanks","commit_id":"08b4f8666a4b41578385763456abadcbbd36afd7"}],"mistraldashboard/cron_triggers/templates/cron_triggers/_create.html":[{"author":{"_account_id":8592,"name":"Anastasia Kuznetsova","email":"akuznetsova@mirantis.com","username":"nastya-kuz"},"change_message_id":"5e43b186dbb58cb23938990cd60051590c7973a0","unresolved":false,"context_lines":[{"line_number":31,"context_line":"                \u003c/a\u003e"},{"line_number":32,"context_line":"            \u003c/li\u003e"},{"line_number":33,"context_line":"        \u003c/ul\u003e"},{"line_number":34,"context_line":"    \u003c/p\u003e"},{"line_number":35,"context_line":"{% endblock %}"}],"source_content_type":"text/html","patch_set":5,"id":"5a5ae5dd_b52eec89","line":34,"updated":"2016-02-08 13:53:54.000000000","message":"Since none of Pattern, First time and Count fields aren\u0027t required in the UI form, but some of them have to be specified, otherwise we will get an error, I propose to add such info here.","commit_id":"08b4f8666a4b41578385763456abadcbbd36afd7"},{"author":{"_account_id":17089,"name":"Gal Margalit","email":"galmargalit@gmail.com","username":"Gal"},"change_message_id":"bb75e838b5583c991099aecd23150fefa8e578bf","unresolved":false,"context_lines":[{"line_number":31,"context_line":"                \u003c/a\u003e"},{"line_number":32,"context_line":"            \u003c/li\u003e"},{"line_number":33,"context_line":"        \u003c/ul\u003e"},{"line_number":34,"context_line":"    \u003c/p\u003e"},{"line_number":35,"context_line":"{% endblock %}"}],"source_content_type":"text/html","patch_set":5,"id":"5a5ae5dd_89a627ac","line":34,"in_reply_to":"5a5ae5dd_b52eec89","updated":"2016-02-08 19:13:44.000000000","message":"thanks","commit_id":"08b4f8666a4b41578385763456abadcbbd36afd7"}],"mistraldashboard/cron_triggers/views.py":[{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"be60a2928502427123264667fcb51bd2055d4e44","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- coding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2016 - Nokia."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":6,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_ca137c5b","line":3,"updated":"2016-01-28 00:03:49.000000000","message":":-)","commit_id":"076e67662ea15a532ef73b4244225a3d95c89bc4"},{"author":{"_account_id":17089,"name":"Gal Margalit","email":"galmargalit@gmail.com","username":"Gal"},"change_message_id":"04285236f91e23b5da4e0d9f55913eb5b1ed07c9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# -*- coding: utf-8 -*-"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright 2016 - Nokia."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\");"},{"line_number":6,"context_line":"# you may not use this file except in compliance with the License."}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_b2c78e11","line":3,"in_reply_to":"7a5de9d1_ca137c5b","updated":"2016-01-28 08:50:25.000000000","message":":D","commit_id":"076e67662ea15a532ef73b4244225a3d95c89bc4"},{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"be60a2928502427123264667fcb51bd2055d4e44","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from django.core.urlresolvers import reverse_lazy"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from horizon import forms"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from django.utils.translation import ugettext_lazy as _"},{"line_number":23,"context_line":"from django.views import generic"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_6a04c814","line":21,"updated":"2016-01-28 00:03:49.000000000","message":"the import order is inappropriate.","commit_id":"076e67662ea15a532ef73b4244225a3d95c89bc4"},{"author":{"_account_id":17089,"name":"Gal Margalit","email":"galmargalit@gmail.com","username":"Gal"},"change_message_id":"04285236f91e23b5da4e0d9f55913eb5b1ed07c9","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from django.core.urlresolvers import reverse_lazy"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"from horizon import forms"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from django.utils.translation import ugettext_lazy as _"},{"line_number":23,"context_line":"from django.views import generic"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_92d612c4","line":21,"in_reply_to":"7a5de9d1_6a04c814","updated":"2016-01-28 08:50:25.000000000","message":"thanks","commit_id":"076e67662ea15a532ef73b4244225a3d95c89bc4"}],"mistraldashboard/default/utils.py":[{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"e94bc3359cb16cc56f065099b4c42cfec55b3939","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"def convert_empty_string_to_none(str):"},{"line_number":55,"context_line":"            if len(str) \u003d\u003d 0:"},{"line_number":56,"context_line":"                str \u003d None"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"            return str"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_87fc9d3f","line":58,"range":{"start_line":55,"start_character":0,"end_line":58,"end_character":22},"updated":"2016-01-27 23:59:26.000000000","message":"looks wired","commit_id":"076e67662ea15a532ef73b4244225a3d95c89bc4"},{"author":{"_account_id":17089,"name":"Gal Margalit","email":"galmargalit@gmail.com","username":"Gal"},"change_message_id":"9a6a9e67bfa1611342ecbcc547f92868b28403dc","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"def convert_empty_string_to_none(str):"},{"line_number":55,"context_line":"            if len(str) \u003d\u003d 0:"},{"line_number":56,"context_line":"                str \u003d None"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"            return str"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_7f6d4897","line":58,"range":{"start_line":55,"start_character":0,"end_line":58,"end_character":22},"in_reply_to":"7a5de9d1_725a7685","updated":"2016-01-28 15:16:12.000000000","message":"The idea behind this function is that python-mistral-client does not handle empty strings (default for a Django form empty HTML input).\n\nI was thinking whether to enforce this issue in python-mistral-client or mistral-dashboard repository, and came to a conclusion it\u0027s UI related thing.\n\nSince I believe we will enforce this validation on other forms, I decided to write a function in our utils file.","commit_id":"076e67662ea15a532ef73b4244225a3d95c89bc4"},{"author":{"_account_id":7700,"name":"Nikolay Mahotkin","email":"nikolay.makhotkin@gmail.com","username":"nmakhotkin"},"change_message_id":"25e23bb9ca08865694d452e0da181e082343a3d9","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"def convert_empty_string_to_none(str):"},{"line_number":55,"context_line":"            if len(str) \u003d\u003d 0:"},{"line_number":56,"context_line":"                str \u003d None"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"            return str"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_a1ec902a","line":58,"range":{"start_line":55,"start_character":0,"end_line":58,"end_character":22},"in_reply_to":"7a5de9d1_7f6d4897","updated":"2016-02-01 07:59:18.000000000","message":"it could simply be done in one line: \n\n  return str if len(str) !\u003d 0 else None","commit_id":"076e67662ea15a532ef73b4244225a3d95c89bc4"},{"author":{"_account_id":17089,"name":"Gal Margalit","email":"galmargalit@gmail.com","username":"Gal"},"change_message_id":"04285236f91e23b5da4e0d9f55913eb5b1ed07c9","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"def convert_empty_string_to_none(str):"},{"line_number":55,"context_line":"            if len(str) \u003d\u003d 0:"},{"line_number":56,"context_line":"                str \u003d None"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"            return str"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a5de9d1_725a7685","line":58,"range":{"start_line":55,"start_character":0,"end_line":58,"end_character":22},"in_reply_to":"7a5de9d1_87fc9d3f","updated":"2016-01-28 08:50:25.000000000","message":"thanks","commit_id":"076e67662ea15a532ef73b4244225a3d95c89bc4"},{"author":{"_account_id":17089,"name":"Gal Margalit","email":"galmargalit@gmail.com","username":"Gal"},"change_message_id":"64cffc13f00081de668550133ebe0cbc2b48d734","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"def convert_empty_string_to_none(str):"},{"line_number":55,"context_line":"            if len(str) \u003d\u003d 0:"},{"line_number":56,"context_line":"                str \u003d None"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"            return str"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a5ae5dd_cb52fb34","line":58,"range":{"start_line":55,"start_character":0,"end_line":58,"end_character":22},"in_reply_to":"7a5de9d1_a1ec902a","updated":"2016-02-08 06:43:32.000000000","message":"thanks :)","commit_id":"076e67662ea15a532ef73b4244225a3d95c89bc4"}]}
