from django.db import models from django.contrib import admin from objects.models import * class MaterialCategory(models.Model): name = models.CharField(max_length=100) # parent = models.ForeignKey('MaterialCategory') def __unicode__(self): return self.name class MaterialProperty(models.Model): name = models.CharField(max_length=200) varname = models.SlugField() description = models.TextField(blank=True) # unit = models.ForeignKey(Units) def __unicode__(self): return self.name class MaterialValue(models.Model): material = models.ForeignKey(u"Material") property = models.ForeignKey(MaterialProperty) value = models.FloatField() def __unicode__(self): return self.name class Material(models.Model): name = models.CharField(max_length=500) description = models.TextField(blank=True) categories = models.ManyToManyField(MaterialCategory) properties = models.ManyToManyField(MaterialValue) phasediagram = models.FileField(upload_to="uploads/materials/phasediagrams/", blank=True) datasheet = models.FileField(upload_to="uploads/materials/datasheets/", blank=True) def __unicode__(self): return self.name class Process(models.Model): name = models.CharField(max_length=200) description = models.TextField() inputmaterials = models.ManyToManyField(Material, related_name="%(class)s_inputmat") inputobjects = models.ManyToManyField(Object, related_name="%(class)s_inputobj") inputintangibles = models.ManyToManyField(Intangible, related_name="%(class)s_inputintang") outputmaterials = models.ManyToManyField(Material, related_name="%(class)s_outputmat") outputobjects = models.ManyToManyField(Object, related_name="%(class)s_outputobj") outputintangibles = models.ManyToManyField(Intangible, related_name="%(class)s_outputintang") def __unicode__(self): return self.name # # Forms # class MaterialSearchForm(ModelForm): class Meta: model = Material # # Registering tables with admin site # # admin.site.register(Material) admin.site.register(MaterialProperty) admin.site.register(MaterialValue) admin.site.register(MaterialCategory) admin.site.register(Process)