Ejemplo n.º 1
0
    def get_change_desc_html(self, f, old, new):
        from lino.core.choicelists import ChoiceListField
        if isinstance(f, models.TextField):
            old = old or ''
            new = new or ''
            return E.li(
                E.b(f.verbose_name), " : ",
                E.pre('\n'.join(
                    difflib.unified_diff(old.splitlines(),
                                         new.splitlines(),
                                         fromfile="before",
                                         tofile="after",
                                         lineterm=''))))

        if isinstance(f, models.DateTimeField):
            return
        if isinstance(f, models.ForeignKey):
            if old:
                old = f.rel.to.objects.get(pk=old)
            if new:
                new = f.rel.to.objects.get(pk=new)
        elif isinstance(f, ChoiceListField):
            if isinstance(old, six.string_types):
                old = f.choicelist.get_by_value(old)
            if isinstance(new, six.string_types):
                new = f.choicelist.get_by_value(new)
        else:
            old = obj2str(old)
            new = obj2str(new)
        return E.li(E.b(f.verbose_name), " : ",
                    u"{0} --> {1}".format(old, new))
Ejemplo n.º 2
0
 def get_change_desc_html(self, f, old, new):
     from lino.core.choicelists import ChoiceListField
     if isinstance(f, models.TextField):
         old = old or ''
         new = new or ''
         return E.li(
             E.b(f.verbose_name), " : ",
             E.pre('\n'.join(difflib.unified_diff(
                 old.splitlines(), new.splitlines(),
                 fromfile="before", tofile="after", lineterm=''))))
         
     if isinstance(f, models.DateTimeField):
         return
     if isinstance(f, models.ForeignKey):
         if old:
             old = f.rel.to.objects.get(pk=old)
         if new:
             new = f.rel.to.objects.get(pk=new)
     elif isinstance(f, ChoiceListField):
         if isinstance(old, six.string_types):
             old = f.choicelist.get_by_value(old)
         if isinstance(new, six.string_types):
             new = f.choicelist.get_by_value(new)
     else:
         old = obj2str(old)
         new = obj2str(new)
     return E.li(
         E.b(f.verbose_name), " : ",
         u"{0} --> {1}".format(old, new))