I'm developing a store that will offer user contributed downloadable products. I'm still very early in the process, but I have satchmo installed properly and I'm working through the source code and documentation to figure out the best approach for this kind of service (without hacking the satchmo source hopefully).
Here is a general overview of how I envision this working: 1. User submits content for review (needs to support multiple file uploads). 2. Admin reviews the submission and either approves, rejects, or instructs the user what steps need to be taken for approval. 3. If approved, the submission will be added as a Custom Downloadable Product , and files will be automatically added to a zip file. 4. User content now available for purchase. The two approaches I have seen for creating a custom product include (1) Inheriting the Product model (http://thisismedium.com/tech/satchmo- diaries-part-one/) and (2) Establishing a OneToOne relationship with the Product model (http://www.satchmoproject.com/docs/svn/custom- product.html). For a traditional store I would probably just use model inheritance, but seeing that not all user submitted content will become products for this project, the OneToOne relationship seems to make the most sense. Here's an example of how I think the models should look at this point: class UserContent(models.Model): name = models.CharField(max_length=255) user = models.ForeignKey(User, related_name='submitted_content') short_description = models.TextField(max_length=200) description = models.TextField() #ill probably use a separate file attachment model ... from product.models import Product #created when the UserContent object is approved class UserDownloadableProduct(models.Model): product = models.OneToOneField(Product, verbose_name=_('Product'), primary_key=True) content = models.ForeignKey(UserContent) file = FileField(_("File"), upload_to=_protected_dir) #zip file ... As you can see, even though not every UserContent object will become a UserDownloadableProduct, I have to collect some of the same data as the satchmo Product model (name, short_description, description, etc) so that I can eventually create a Product with that data for those that are approved. This is where the model inheritance approach seems to have an advantage (so that I'm not duplicating data), but as I described earlier, it seems like a bad idea to create a Product for every user submitted content (since some of them will be rejected). Anyways, I would appreciate some feedback about the direction I'm heading with this project. Am I taking the best approach for creating a custom downloadable product? For UserDownloadableProduct, should I just reuse most of the DownloadableProduct model code that is packaged with satchmo? Is there anything else I need to consider? Any feedback or insight would be appreciated. Thanks! --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Satchmo users" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/satchmo-users?hl=en -~----------~----~----~----~------~----~------~--~---
