diff --git a/gracedb/forms.py b/gracedb/forms.py index 8ada820fe9542f1519bd275674b4efab8ad5830b..650b9d779731213c15a82f2ac74325eddfe235af 100644 --- a/gracedb/forms.py +++ b/gracedb/forms.py @@ -1,9 +1,19 @@ from django import forms +from django.utils.safestring import mark_safe +from django.utils.html import escape from models import Event, User, Group, Label from query import parseQuery, ParseException +htmlEntityStar = "★" +htmlEntityRightPointingHand = "☞" +htmlEntitySkullAndCrossbones = "☠" +htmlEntityTriangularBuller = "‣" +htmlEntityRightArrow = "→" + +errorMarker = '<span style="color:red;">'+htmlEntityStar+'</span>' + class GraceQueryField(forms.CharField): def clean(self, queryString): from django.db.models import Q @@ -11,7 +21,8 @@ class GraceQueryField(forms.CharField): try: return parseQuery(queryString) except ParseException, e: - raise forms.ValidationError("Error near (*): "+ e.markInputline("(*)")) + err = "Error: " + escape(e.pstr[:e.loc]) + errorMarker + escape(e.pstr[e.loc:]) + raise forms.ValidationError(mark_safe(err)) except Exception, e: # What could this be and how can we handle it better? XXX raise forms.ValidationError(str(e))