22
22
from sentry .permissions import (
23
23
can_remove_project , can_add_project_key , can_remove_project_key )
24
24
from sentry .plugins import plugins
25
+ from sentry .utils import json
25
26
from sentry .web .decorators import login_required , has_access
26
27
from sentry .web .forms .projects import (
27
28
ProjectTagsForm , RemoveProjectForm , EditProjectForm ,
28
- NotificationTagValuesForm , AlertSettingsForm , ProjectQuotasForm )
29
+ NotificationTagValuesForm , AlertSettingsForm , ProjectQuotasForm ,
30
+ NewRuleForm )
29
31
from sentry .web .helpers import render_to_response , plugin_config
30
32
31
33
@@ -56,7 +58,8 @@ def remove_project(request, team, project):
56
58
delete_project .delay (object_id = project .id )
57
59
project .update (status = STATUS_HIDDEN )
58
60
59
- messages .add_message (request , messages .SUCCESS ,
61
+ messages .add_message (
62
+ request , messages .SUCCESS ,
60
63
_ ('Deletion has been queued and should occur shortly.' ))
61
64
elif removal_type == '2' :
62
65
new_project = form .cleaned_data ['project' ]
@@ -454,12 +457,12 @@ def list_rules(request, team, project):
454
457
def new_rule (request , team , project ):
455
458
from sentry .rules import RULES
456
459
457
- selected_rule = request .POST . get ( 'rule' )
460
+ form = NewRuleForm ( request .POST or None )
458
461
459
- if request .POST :
460
- rule_cls = RULES [selected_rule ]
461
- rule = rule_cls .from_params (project )
462
- rule .save (request .POST )
462
+ if request .POST and form . is_valid () :
463
+ # rule_cls = RULES[selected_rule]
464
+ # rule = rule_cls.from_params(project)
465
+ # rule.save(request.POST)
463
466
464
467
messages .add_message (
465
468
request , messages .SUCCESS ,
@@ -471,16 +474,23 @@ def new_rule(request, team, project):
471
474
rules_by_action = defaultdict (list )
472
475
for rule_id , rule_cls in RULES .iteritems ():
473
476
rule = rule_cls .from_params (project )
474
- rules_by_action [rule .action_label ].append (
475
- (rule_id , rule .render_form (request .POST ))
476
- )
477
+ rules_by_action [rule .action_label ].append ({
478
+ 'id' : rule_id ,
479
+ 'label' : rule .trigger_label ,
480
+ 'html' : rule .render_form (request .POST ),
481
+ })
482
+
483
+ rule_list = [{
484
+ 'label' : k ,
485
+ 'triggers' : v ,
486
+ } for k , v in rules_by_action .iteritems ()]
477
487
478
488
context = csrf (request )
479
489
context .update ({
480
490
'team' : team ,
481
491
'page' : 'rules' ,
482
- 'rules_by_action' : rules_by_action . items ( ),
483
- 'selected_rule ' : selected_rule ,
492
+ 'rules_by_action' : json . dumps ( rule_list ),
493
+ 'form ' : form ,
484
494
'project' : project ,
485
495
})
486
496
0 commit comments