So I thought I'd promote the latest dev version of my Field Complete module to a release candidate yesterday. There were two reasons for this: (a) it's pretty solid, and (b) people are more likely to use it if it's out of dev.
It wasn't a mistake. Within a couple of hours I had a new bug report: Doesn't work with Profile2.
Which surprised me a lot, why on earth would it not work with a popular entity-based module? My code is very standard and does nothing naughty.
The answer, of course, is that Profile2 is naughty. Or at least it's non-standard. I'm not going to go into detail but they bypassed standard edit-form processing and do odd awkward things with the display URL. So my form interceptions don't get a chance to work and the completeness progress bar (and the Incomplete fields block) can't work.
What to do?
On the one hand I don't see why I should hack my code to work with something non-standard. On the other, Profile2 is a very popular module and using Field Completeness with it is a natural thing to do. And I want people to use my module.
So I spent a couple of hours figuring out the nasty that Profile2 does and modifying my code to cope with it. It wasn't too horrible, but I can't say I enjoyed it as a process. My nice clean code now has hacks in it.
Oh well.
Does the hacks in Profile2 seem necessary for it to its work? Or is it just poor workmanship?
ReplyDeleteIf the second is the case I hope you contacted the developers of Profile2 and hinted at doing it the right way.
I imagine the writers consider it to be necessary. I doubt they'd be interested in making fundamental changes at this stage of its lifetime.
ReplyDelete