Well, since you're already using portals, filtered portals make sense.
A simple portal filter calculation like:
reports::status = "submitted" and reports::dateReportSubmit > Get(CurrentDate) - 8
would filter report records to only display records that were submit within the last 7 days.
You could create a scheduled script that ran at the end of the week to change any un-approved "submitted" reports to some other status like "expired" so they would fall out of the portal.