models.py 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. # coding=utf-8
  2. from django.db import models
  3. from django.conf import settings
  4. from PIL import Image
  5. from apps.tenant.models import Tenant
  6. from utils.file_operation import UploadFile, DeleteFile
  7. config_file = 'config/'
  8. class Config(models.Model):
  9. KEY_REPAIRS_PERSON = 'repairs_person' #报修人员
  10. KEY_SEND_ORDER_TYPE = 'send_order_type' #派单方式
  11. WXAPP_HOME_IMG = 'wxapp_home_img' #小程序首页图片
  12. tenant = models.ForeignKey(Tenant, verbose_name=u'租户', on_delete=models.PROTECT, editable=False)
  13. property = models.CharField(max_length=100, verbose_name=u'属性')
  14. value = models.TextField(verbose_name=u'值')
  15. class Meta:
  16. db_table = "system_config"
  17. verbose_name = u"基础设置"
  18. index_together = (
  19. 'property',
  20. )
  21. default_permissions = ()
  22. permissions = [
  23. ('browse_config', u'查看'),
  24. ('set_config', u'设置'),
  25. ]
  26. @staticmethod
  27. def getRepairsPerson(tenant_id):
  28. try:
  29. row = Config.objects.get(property=Config.KEY_REPAIRS_PERSON, tenant_id=tenant_id)
  30. return row.value
  31. except:
  32. return ''
  33. @staticmethod
  34. def getSendOrderType(tenant_id):
  35. try:
  36. row = Config.objects.get(property=Config.KEY_SEND_ORDER_TYPE, tenant_id=tenant_id)
  37. return row.value
  38. except:
  39. return ''
  40. @staticmethod
  41. def add_img(employee, property, file):
  42. path = '{0}{1}/{2}/'.format(config_file,property,employee.user.id)
  43. filename = UploadFile(file, path)
  44. fullname = "%s/%s" % (settings.MEDIA_ROOT, filename)
  45. try:
  46. img = Image.open(fullname)
  47. x, y = img.size
  48. if x > 1440:
  49. img = img.resize((1440, int((y / x) * 1440)), Image.ANTIALIAS)
  50. img.save(fullname)
  51. except:
  52. pass
  53. return filename
  54. @staticmethod
  55. def del_images(instance):
  56. picture = instance.value
  57. instance.delete()
  58. DeleteFile(picture)