return "%s: '%s' qty=%s @ %s" % (self.inventory, self.supply, self.quantity, self.date) class Supplier(models.Model): name = models.CharField(max_length=32, verbose_name=_(u'Name')) address_line1 = models.CharField(max_length=64, null=True, blank=True, verbose_name=_(u'Address')) address_line2 = models.CharField(max_length=64, null=True, blank=True, verbose_name=_(u'Address')) address_line3 = models.CharField(max_length=64, null=True, blank=True, verbose_name=_(u'Address')) address_line4 = models.CharField(max_length=64, null=True, blank=True, verbose_name=_(u'Address')) phone_number1 = models.CharField(max_length=32, null=True, blank=True, verbose_name=_(u'Phone number')) phone_number2 = models.CharField(max_length=32, null=True, blank=True, verbose_name=_(u'Phone number')) notes = models.TextField(null=True, blank=True, verbose_name=(u'Notes')) class Meta: ordering = ['name'] verbose_name = _(u'Supplier') verbose_name_plural = _(u'Suppliers') def __unicode__(self): return self.name @models.permalink def get_absolute_url(self): return ('supplier_view', [str(self.id)]) register(ItemTemplate, _(u'Templates'), ['description', 'brand', 'model', 'part_number', 'notes']) register(Location, _(u'Locations'), ['name', 'address_line1', 'address_line2', 'address_line3', 'address_line4', 'phone_number1', 'phone_number2']) register(Inventory, _(u'Inventory'), ['name', 'location__name']) register(Supplier, _(u'Supplier'), ['name', 'address_line1', 'address_line2', 'address_line3', 'address_line4', 'phone_number1', 'phone_number2', 'notes'])
""" user = models.ForeignKey(User, verbose_name=_(u'user'), editable=False) document = models.ForeignKey(Document, verbose_name=_(u'document'), editable=False) datetime_accessed = models.DateTimeField(verbose_name=_(u'accessed'), db_index=True) objects = RecentDocumentManager() def __unicode__(self): return unicode(self.document) class Meta: ordering = ('-datetime_accessed',) verbose_name = _(u'recent document') verbose_name_plural = _(u'recent documents') # Register the fields that will be searchable register('document', Document, _(u'document'), [ {'name': u'document_type__name', 'title': _(u'Document type')}, {'name': u'file_mimetype', 'title': _(u'MIME type')}, {'name': u'file_filename', 'title': _(u'Filename')}, {'name': u'file_extension', 'title': _(u'Filename extension')}, {'name': u'documentmetadata__value', 'title': _(u'Metadata value')}, {'name': u'documentpage__content', 'title': _(u'Content')}, {'name': u'description', 'title': _(u'Description')}, {'name': u'tags__name', 'title': _(u'Tags')}, {'name': u'comments__comment', 'title': _(u'Comments')}, ] ) #register(Document, _(u'document'), ['document_type__name', 'file_mimetype', 'file_extension', 'documentmetadata__value', 'documentpage__content', 'description', {'field_name':'file_filename', 'comparison':'iexact'}])
negated = models.BooleanField(default=False, verbose_name=_(u'negated'), help_text=_(u'Inverts the logic of the operator.')) enabled = models.BooleanField(default=True, verbose_name=_(u'enabled')) def __unicode__(self): return '[%s] %s %s %s %s %s' % ('x' if self.enabled else ' ', self.get_inclusion_display(), self.metadata_type, _(u'not') if self.negated else '', self.get_operator_display(), self.expression) class Meta: verbose_name = _(u'metadata group item') verbose_name_plural = _(u'metadata group items') available_transformations = ([(name, data['label']) for name, data in AVAILABLE_TRANSFORMATIONS.items()]) if AVAILABLE_MODELS else [] class DocumentPageTransformation(models.Model): document_page = models.ForeignKey(DocumentPage, verbose_name=_(u'document page')) order = models.PositiveIntegerField(default=0, blank=True, null=True, verbose_name=_(u'order')) transformation = models.CharField(choices=available_transformations, max_length=128, verbose_name=_(u'transformation')) arguments = models.TextField(blank=True, null=True, verbose_name=_(u'arguments'), help_text=_(u'Use dictionaries to indentify arguments, example: {\'degrees\':90}')) def __unicode__(self): return '%s - %s' % (unicode(self.document_page), self.get_transformation_display()) class Meta: ordering = ('order',) verbose_name = _(u'document page transformation') verbose_name_plural = _(u'document page transformations') register(Document, _(u'document'), ['document_type__name', 'file_mimetype', 'file_filename', 'file_extension', 'documentmetadata__value', 'documentpage__content', 'description'])
inventory = models.ManyToManyField(Item, blank=True, null=True, verbose_name=_(u"assigned assets")) class Meta: ordering = ['last_name', 'second_last_name', 'first_name', 'second_name'] verbose_name = _(u"person") verbose_name_plural = _(u"people") @models.permalink def get_absolute_url(self): return ('person_view', [str(self.id)]) def __unicode__(self): if self.second_last_name: second_last_name = " %s" % self.second_last_name else: second_last_name = '' if self.second_name: second_name = " %s" % self.second_name else: second_name = '' return "%s%s, %s%s" % (self.last_name, second_last_name and second_last_name, self.first_name, second_name) register(ItemState, _(u'states'), ['state__name']) register(Item, _(u'assets'), ['property_number', 'notes', 'serial_number', 'person__first_name', 'person__last_name', 'person__second_last_name', 'person__second_name']) register(ItemGroup, _(u'asset groups'), ['name']) register(Person, _(u'people'), ['last_name', 'second_last_name', 'first_name', 'second_name', 'location__name'])
(u'1h', _(u'1 hour')), (u'30m', _(u'30 minutes')), (u'15m', _(u'15 minutes')), ) REPETITION_CHOICES = ( (u'24h', _(u'1 day')), (u'12h', _(u'12 hours')), (u'6h', _(u'6 hours')), (u'2h', _(u'2 hours')), (u'1h', _(u'1 hour')), (u'30m', _(u'30 minutes')), (u'15m', _(u'15 minutes')), ) class Notification(models.Model): reminder = models.ForeignKey(Reminder, verbose_name=_(u'reminder')) participant = models.ForeignKey(Participant, verbose_name=_(u'participant')) preemptive = models.CharField(max_length=4, choices=PREEMPTIVE_CHOICES, verbose_name=_(u'preemptive')) class Meta: verbose_name = _(u'notification') verbose_name_plural = _(u'notifications') def __unicode__(self): return self.label register(Reminder, _(u'reminder'), [u'label', 'notes', 'participant__user__username', 'participant__user__first_name', 'participant__user__last_name'])
phone_number2 = models.CharField(max_length=32, null=True, blank=True, verbose_name=_(u'phone number')) notes = models.TextField(null=True, blank=True, verbose_name=(u'notes')) class Meta: ordering = ['name'] verbose_name = _(u"supplier") verbose_name_plural = _(u"suppliers") def __unicode__(self): return self.name @models.permalink def get_absolute_url(self): return ('supplier_view', [str(self.id)]) register(ItemTemplate, _(u'templates'), ['description', 'brand', 'model', 'part_number', 'notes']) register(Location, _(u'locations'), [ 'name', 'address_line1', 'address_line2', 'address_line3', 'address_line4', 'phone_number1', 'phone_number2' ]) register(Inventory, _(u'inventory'), ['name', 'location__name']) register(Supplier, _(u'supplier'), [ 'name', 'address_line1', 'address_line2', 'address_line3', 'address_line4', 'phone_number1', 'phone_number2', 'notes' ])
received_qty = models.PositiveIntegerField(default=0, null=True, blank=True, verbose_name=_(u'received')) class Meta: verbose_name = _(u'purchase order item') verbose_name_plural = _(u'purchase order items') def __unicode__(self): return unicode(self.item_template) @models.permalink def get_absolute_url(self): return ('purchase_order_view', [str(self.purchase_order.id)]) register(PurchaseRequestStatus, _(u'purchase request status'), ['name']) register( PurchaseRequest, _(u'purchase request'), ['user_id', 'id', 'budget', 'required_date', 'status__name', 'originator']) register(PurchaseRequestItem, _(u'purchase request item'), ['item_template__description', 'qty', 'notes']) register(PurchaseOrderStatus, _(u'purchase order status'), ['name']) register(PurchaseOrderItemStatus, _(u'purchase order item status'), ['name']) register(PurchaseOrder, _(u'purchase order'), [ 'user_id', 'id', 'required_date', 'status__name', 'supplier__name', 'notes' ]) register(PurchaseOrderItem, _(u'purchase order item'), ['item_template__description', 'qty'])
class PurchaseOrderItem(models.Model): purchase_order = models.ForeignKey(PurchaseOrder, related_name='items', verbose_name=_(u'Purchase order')) item_template = models.ForeignKey(ItemTemplate, verbose_name=_(u'Item template')) agreed_price = models.PositiveIntegerField(null=True, blank=True, verbose_name=_(u'Agreed price')) active = models.BooleanField(default=True, verbose_name=_(u'Active')) status = models.ForeignKey(PurchaseOrderItemStatus, null=True, blank=True, verbose_name=_(u'Status')) qty = models.PositiveIntegerField(verbose_name=_(u'Quantity')) received_qty = models.PositiveIntegerField(default=0, null=True, blank=True, verbose_name=_(u'received')) class Meta: verbose_name = _(u'Purchase order item') verbose_name_plural = _(u'Purchase order items') def __unicode__(self): return unicode(self.item_template) @models.permalink def get_absolute_url(self): return ('purchase_order_view', [str(self.purchase_order.id)]) register(PurchaseRequestStatus, _(u'Purchase request status'), ['name']) register(PurchaseRequest, _(u'Purchase request'), ['user_id', 'id', 'budget', 'required_date', 'status__name', 'originator']) register(PurchaseRequestItem, _(u'Purchase request item'), ['item_template__description', 'qty', 'notes']) register(PurchaseOrderStatus, _(u'Purchase order status'), ['name']) register(PurchaseOrderItemStatus, _(u'Purchase order item status'), ['name']) register(PurchaseOrder, _(u'Purchase order'), ['user_id', 'id', 'required_date', 'status__name', 'supplier__name', 'notes']) register(PurchaseOrderItem, _(u'Purchase order item'), ['item_template__description', 'qty'])
class Supplier(models.Model): #TODO: Contact, extension name = models.CharField(max_length=32, verbose_name=_("name")) address_line1 = models.CharField(max_length=64, null=True, blank=True, verbose_name=_(u'address')) address_line2 = models.CharField(max_length=64, null=True, blank=True, verbose_name=_(u'address')) address_line3 = models.CharField(max_length=64, null=True, blank=True, verbose_name=_(u'address')) address_line4 = models.CharField(max_length=64, null=True, blank=True, verbose_name=_(u'address')) phone_number1 = models.CharField(max_length=32, null=True, blank=True, verbose_name=_(u'phone number')) phone_number2 = models.CharField(max_length=32, null=True, blank=True, verbose_name=_(u'phone number')) notes = models.TextField(null=True, blank=True, verbose_name=(u'notes')) class Meta: ordering = ['name'] verbose_name = _(u"supplier") verbose_name_plural = _(u"suppliers") def __unicode__(self): return self.name @models.permalink def get_absolute_url(self): return ('supplier_view', [str(self.id)]) register(ItemTemplate, _(u'templates'), ['description', 'brand', 'model', 'part_number', 'notes']) register(Location, _(u'locations'), ['name', 'address_line1', 'address_line2', 'address_line3', 'address_line4', 'phone_number1', 'phone_number2']) register(SubLocation, _(u'sublocation'), [ 'location','parentID', 'completename', 'comments', 'level']) register(Inventory, _(u'inventory'), ['name', 'location__name']) register(Supplier, _(u'supplier'), ['name', 'address_line1', 'address_line2', 'address_line3', 'address_line4', 'phone_number1', 'phone_number2', 'notes'])
datetime_accessed = models.DateTimeField(verbose_name=_(u"accessed"), db_index=True) objects = RecentDocumentManager() def __unicode__(self): return unicode(self.document) class Meta: ordering = ("-datetime_accessed",) verbose_name = _(u"recent document") verbose_name_plural = _(u"recent documents") # Register the fields that will be searchable register( "document", Document, _(u"document"), [ {"name": u"document_type__name", "title": _(u"Document type")}, {"name": u"documentversion__mimetype", "title": _(u"MIME type")}, {"name": u"documentversion__filename", "title": _(u"Filename")}, {"name": u"documentmetadata__value", "title": _(u"Metadata value")}, {"name": u"documentversion__documentpage__content", "title": _(u"Content")}, {"name": u"description", "title": _(u"Description")}, {"name": u"tags__name", "title": _(u"Tags")}, {"name": u"comments__comment", "title": _(u"Comments")}, ], ) # register(Document, _(u'document'), ['document_type__name', 'file_mimetype', 'documentmetadata__value', 'documentpage__content', 'description', {'field_name':'file_filename', 'comparison':'iexact'}])
@models.permalink def get_absolute_url(self): return ('person_view', [str(self.id)]) def __unicode__(self): if self.second_last_name: second_last_name = ' %s' % self.second_last_name else: second_last_name = '' if self.second_name: second_name = ' %s' % self.second_name else: second_name = '' return '%s%s, %s%s' % (self.last_name, second_last_name and second_last_name, self.first_name, second_name) register(ItemState, _(u'Asset states'), ['state__name']) register(Item, _(u'Assets'), [ 'property_number', 'notes', 'serial_number', 'person__first_name', 'person__last_name', 'person__second_last_name', 'person__second_name' ]) register(ItemGroup, _(u'Asset groups'), ['name']) register(Person, _(u'People'), [ 'last_name', 'second_last_name', 'first_name', 'second_name', 'location__name' ])
order = models.PositiveIntegerField(default=0, blank=True, null=True, verbose_name=_(u'order')) transformation = models.CharField(choices=available_transformations, max_length=128, verbose_name=_(u'transformation')) arguments = models.TextField( blank=True, null=True, verbose_name=_(u'arguments'), help_text= _(u'Use dictionaries to indentify arguments, example: {\'degrees\':90}' )) def __unicode__(self): return '%s - %s' % (unicode( self.document_page), self.get_transformation_display()) class Meta: ordering = ('order', ) verbose_name = _(u'document page transformation') verbose_name_plural = _(u'document page transformations') register(Document, _(u'document'), [ 'document_type__name', 'file_mimetype', 'file_filename', 'file_extension', 'documentmetadata__value', 'documentpage__content', 'description' ]) #register(Document, _(u'document'), ['document_type__name', 'file_mimetype', 'file_extension', 'documentmetadata__value', 'documentpage__content', 'description', {'field_name':'file_filename', 'comparison':'iexact'}])