~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to lib/lp/bugs/adapters/bugchange.py

  • Committer: Brad Crittenden
  • Date: 2011-08-04 00:59:46 UTC
  • mto: (13627.2.1 bug-813322-2)
  • mto: This revision was merged to the branch mainline in revision 13715.
  • Revision ID: bac@canonical.com-20110804005946-030kaefvuljz5j3z
Horrible checkpoint

Show diffs side-by-side

added added

removed removed

Lines of Context:
198
198
    """A bug got converted into a question."""
199
199
 
200
200
    def __init__(self, when, person, question):
 
201
        import pdb; pdb.set_trace(); # DO NOT COMMIT
201
202
        super(BugConvertedToQuestion, self).__init__(when, person)
202
203
        self.question = question
203
204
 
421
422
            return BugNotificationLevel.METADATA
422
423
 
423
424
    def getBugActivity(self):
 
425
        import pdb; pdb.set_trace(); # DO NOT COMMIT
 
426
        if self.old_value is not None and self.new_value is not None:
 
427
            return {
 
428
                'whatchanged': CHANGED_DUPLICATE_MARKER,
 
429
                'oldvalue': str(self.old_value.id),
 
430
                'newvalue': str(self.new_value.id),
 
431
                }
 
432
        elif self.old_value is None:
 
433
            return {
 
434
                'whatchanged': MARKED_AS_DUPLICATE,
 
435
                'newvalue': str(self.new_value.id),
 
436
                }
 
437
        elif self.new_value is None:
 
438
            return {
 
439
                'whatchanged': REMOVED_DUPLICATE_MARKER,
 
440
                'oldvalue': str(self.old_value.id),
 
441
                }
 
442
        else:
 
443
            raise AssertionError(
 
444
                "There is no change: both the old bug and new bug are None.")
 
445
 
 
446
    def getBugNotification(self):
 
447
        if self.old_value is not None and self.new_value is not None:
 
448
            if self.old_value.private:
 
449
                old_value_text = (
 
450
                    "** This bug is no longer a duplicate of private bug "
 
451
                    "%d" % self.old_value.id)
 
452
            else:
 
453
                old_value_text = (
 
454
                    "** This bug is no longer a duplicate of bug %d\n"
 
455
                    "   %s" % (self.old_value.id, self.old_value.title))
 
456
            if self.new_value.private:
 
457
                new_value_text = (
 
458
                    "** This bug has been marked a duplicate of private bug "
 
459
                    "%d" % self.new_value.id)
 
460
            else:
 
461
                new_value_text = (
 
462
                    "** This bug has been marked a duplicate of bug %d\n"
 
463
                    "   %s" % (self.new_value.id, self.new_value.title))
 
464
 
 
465
            text = "\n".join((old_value_text, new_value_text))
 
466
 
 
467
        elif self.old_value is None:
 
468
            if self.new_value.private:
 
469
                text = (
 
470
                    "** This bug has been marked a duplicate of private bug "
 
471
                    "%d" % self.new_value.id)
 
472
            else:
 
473
                text = (
 
474
                    "** This bug has been marked a duplicate of bug %d\n"
 
475
                    "   %s" % (self.new_value.id, self.new_value.title))
 
476
 
 
477
        elif self.new_value is None:
 
478
            if self.old_value.private:
 
479
                text = (
 
480
                    "** This bug is no longer a duplicate of private bug "
 
481
                    "%d" % self.old_value.id)
 
482
            else:
 
483
                text = (
 
484
                    "** This bug is no longer a duplicate of bug %d\n"
 
485
                    "   %s" % (self.old_value.id, self.old_value.title))
 
486
 
 
487
        else:
 
488
            raise AssertionError(
 
489
                "There is no change: both the old bug and new bug are None.")
 
490
 
 
491
        return {'text': text}
 
492
 
 
493
 
 
494
class DeferredBugDuplicateChange(AttributeChange):
 
495
    """Describes a change to a bug's duplicate marker.
 
496
 
 
497
    This change is merely queued up without a recipients list given.  The
 
498
    post-processing job is responsible for computing the recipients list and
 
499
    then sending the notifications.
 
500
 
 
501
    The deferral may be fragile if multiple changes are made to the bug's
 
502
    duplicate status before the post-processor runs, so checks must be
 
503
    performed to ensure the state is still as expected.
 
504
    """
 
505
    def __init__(self, when, person, what_changed,
 
506
                 old_value, new_value):
 
507
        super(DeferredBugDuplicateChange, self).__init__(
 
508
            when, person, what_changed, old_value, new_value)
 
509
 
 
510
    def getBugActivity(self):
 
511
        import pdb; pdb.set_trace(); # DO NOT COMMIT
424
512
        if self.old_value is not None and self.new_value is not None:
425
513
            return {
426
514
                'whatchanged': CHANGED_DUPLICATE_MARKER,