Because users might accidentally muck up a report, and these reports are stored on the file system, it would be great to be able to keep a backup. Alternatively you could go with full revisioning, but it seems that a strategy that if you save changes to a report, and the report is older than a day, then it would get copied to a file system. Hmmm.... But maybe full revisioning in the DB would be easier to implement?

Comments

mojzis’s picture

well, i was thinking that life moght get easier for you if the report definition itself was a node, or entity in 7 - that way, versioning would be provided by drupal ...
also, i keep thinking about the "regular" deployment model with a dev, stage and prod - probably the best approach would be to make the selects and reports exportable into a feature and thus ease the deployment and also versioning - people would put their features into their preferred versioning system ...

metzlerd’s picture

I've thought about versioning.. which seems like a good idea. I don't want to make everything a node because we do a lot of editing of the files on the file system at our shop. The WYSIWYG is great for starters but some of our cooler reports are edited html and css. Some are deployed through version control systems allready, which is the beauty of doing everything in a file system. It also allows base forena reports to be distributed with the package. I am rethinking a bit how the local site or custom reports should be stored.

Another point is that I'm building this a bit as an API that can be used outside of drupal as an embeded product in other PHP GPL applications.

But I agree we need some kind of versioning system here. I'll give some thought to working on that.

mojzis’s picture

yep, the files are definitely better. do you know the features module ? I think it is worth having a look at.

metzlerd’s picture

I'm not really familiar with it, but I'lll give it a look.

metzlerd’s picture

Status: Active » Closed (won't fix)

I took a different strategy, allowing reports to be delivered with a modules. There's a reversion mechanism, so this seems like the sane approach when external clients are involved.