Advertisement
Guest User

monyetkolot20@gmail.com

a guest
Nov 22nd, 2016
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.25 KB | None | 0 0
  1. from django.contrib.auth.models import User, Group
  2. from base.models import *
  3. from filer.models import Image
  4. from filer.models import File
  5. from filer.models import filemodels as fm
  6. from rest_framework import serializers
  7.  
  8.  
  9.  
  10. class ImageSerializer(serializers.HyperlinkedModelSerializer):
  11. class Meta:
  12. model = Image
  13. fields = ('url','path','original_filename', 'sha1')
  14. # fields = '__all__'
  15. class UserSerializer(serializers.HyperlinkedModelSerializer):
  16. password = serializers.CharField(read_only =True)
  17. class Meta:
  18. model = User
  19. fields = ('id', 'username', 'email', 'is_staff', 'date_joined', 'password')
  20.  
  21. class SiteDataSerializer(serializers.HyperlinkedModelSerializer):
  22. customer = serializers.StringRelatedField()
  23.  
  24. class Meta:
  25. model = Site
  26. fields = ('id','customer', 'name')
  27.  
  28.  
  29. class ConveyorDataSerializer(serializers.HyperlinkedModelSerializer):
  30. site = SiteDataSerializer()
  31.  
  32. class Meta:
  33. model = Conveyor
  34. fields = ('id','site', 'code')
  35.  
  36. class AssetSpecificationSerializer(serializers.HyperlinkedModelSerializer):
  37. part_spec = serializers.StringRelatedField()
  38. value = serializers.StringRelatedField()
  39. class Meta:
  40. model = AssetSpecification
  41. fields = ('id', 'part_spec', 'value')
  42.  
  43.  
  44. class ConveyorAssetSerializer(serializers.HyperlinkedModelSerializer):
  45. part = serializers.StringRelatedField()
  46. conveyor = ConveyorDataSerializer()
  47. asset_specifications = AssetSpecificationSerializer(many = True , read_only =True)
  48. class Meta:
  49. model = ConveyorAsset
  50. fields = ('url', 'code', 'part', 'description', 'conveyor', 'brand', 'status', 'active', 'installed_date', 'asset_specifications', )
  51.  
  52.  
  53. class ConveyorSerializer(serializers.HyperlinkedModelSerializer):
  54. area = serializers.StringRelatedField()
  55. site = SiteDataSerializer()
  56. assets = serializers.StringRelatedField(many = True , read_only =True)
  57. def validate(self, attrs):
  58. instance = Conveyor(**attrs)
  59. instance.clean()
  60. return attrs
  61. class Meta:
  62. model = Conveyor
  63. fields = ('url', 'sequence_order', 'code', 'main_conveyor', 'description', 'site', 'area', 'active', 'assets')
  64.  
  65.  
  66.  
  67. class AreaSerializer(serializers.HyperlinkedModelSerializer):
  68. conveyors = serializers.StringRelatedField(many = True , read_only =True)
  69. site = SiteDataSerializer()
  70. class Meta:
  71. model = Area
  72. fields = ('url', 'site', 'name', 'description', 'active', 'conveyors')
  73.  
  74. class SiteSerializer(serializers.HyperlinkedModelSerializer):
  75. conveyors = serializers.StringRelatedField(many = True , read_only =True)
  76. customer = serializers.StringRelatedField()
  77. areas = serializers.StringRelatedField(many = True , read_only =True)
  78. class Meta:
  79. model = Site
  80. fields = ('url', 'customer', 'name', 'description', 'active', 'areas', 'conveyors', 'code')
  81.  
  82. class CustomerSerializer(serializers.HyperlinkedModelSerializer):
  83. logo = serializers.ImageField()
  84. sites = SiteSerializer(many = True , read_only =True)
  85. class Meta:
  86. model = Customer
  87. fields = ('url', 'name', 'description', 'co_type', 'active', 'logo', 'sites', 'code')
  88.  
  89.  
  90. class PartSerializer(serializers.HyperlinkedModelSerializer):
  91. class Meta:
  92. model = Part
  93. fields = ('url', 'name', 'code', 'icon', 'important_level', 'point', 'depend')
  94.  
  95. class PartTypeSerializer(serializers.HyperlinkedModelSerializer):
  96. class Meta:
  97. model = PartType
  98. fields = ('url', 'name', 'code', 'part')
  99.  
  100. class BrandSerializer(serializers.HyperlinkedModelSerializer):
  101. class Meta:
  102. model = Brand
  103. fields = ('url', 'name', 'active')
  104.  
  105. class WorkSerializer(serializers.HyperlinkedModelSerializer):
  106. class Meta:
  107. model = Work
  108. fields = ('url', 'name', 'category', 'part')
  109.  
  110. class WorkStepSerializer(serializers.HyperlinkedModelSerializer):
  111. class Meta:
  112. model = WorkStep
  113. fields = ('url', 'name', 'description', 'seq', 'active', 'work')
  114.  
  115. class EmployeeSerializer(serializers.HyperlinkedModelSerializer):
  116. user = UserSerializer()
  117. customer = serializers.StringRelatedField()
  118. site = serializers.StringRelatedField()
  119. pict = serializers.ImageField()
  120. def validate(self, attrs):
  121. instance = Employee(**attrs)
  122. instance.clean()
  123. return attrs
  124.  
  125.  
  126. class Meta:
  127. model = Employee
  128. fields = ('id', 'pict', 'customer', 'site', 'user')
  129.  
  130.  
  131.  
  132. class FileSerializer(serializers.HyperlinkedModelSerializer):
  133. class Meta:
  134. model = File
  135. fields = ('url',)
  136.  
  137. class FileFilerSerializer(serializers.HyperlinkedModelSerializer):
  138.  
  139. class Meta:
  140. model = fm.File
  141. fields = ('id','original_filename','url', 'file', 'path', 'folder', 'owner')
  142. # file = serializers.ReadOnlyField()
  143. # account = serializers.SlugRelatedField(queryset=Account.objects.all(), slug_field="vat_perc")
  144.  
  145. class FolderFilerSerializer(serializers.HyperlinkedModelSerializer):
  146.  
  147.  
  148. class Meta:
  149. model = fm.File
  150. fields = ('id',)
  151.  
  152. class ActionSerializer(serializers.HyperlinkedModelSerializer):
  153. conveyor = serializers.StringRelatedField()
  154. def validate(self, attrs):
  155. instance = Action(**attrs)
  156. instance.clean()
  157. return attrs
  158.  
  159. class Meta:
  160. model = Action
  161. fields = ('url', 'id', 'maintenance_type', 'schedule_date', 'conveyor', 'status', 'action_no')
  162.  
  163. # class ActionTeamSerializer(serializers.HyperlinkedModelSerializer):
  164. # class Meta:
  165. # model = ActionTeam
  166. # fields = ('url', 'description', 'action', 'employee')
  167.  
  168. # class PartToInspectSerializer(serializers.HyperlinkedModelSerializer):
  169. # class Meta:
  170. # model = PartToInspect
  171. # fields = ('url', 'is_planned', 'part', 'action', 'do_action')
  172.  
  173. class DoActionSerializer(serializers.HyperlinkedModelSerializer):
  174.  
  175. def validate(self, attrs):
  176. instance = DoAction(**attrs)
  177. instance.clean()
  178. return attrs
  179.  
  180. class Meta:
  181. model = DoAction
  182. fields = ('url', 'sequence', 'start_on', 'end_on', 'status', 'cancel_notes', 'is_clean','action', 'inspection_results')
  183.  
  184. class InspectionResultSerializer(serializers.HyperlinkedModelSerializer):
  185. class Meta:
  186. model = InspectionResult
  187. fields = ('url', 'result_found_on', 'broken_level', 'notes', 'correction', 'action_notes', 'is_new_thread', 'recomendation', 'remarks', 'part', 'do_action', 'conveyor_asset', 'part_to_inspect', 'old_thread_ref')
  188.  
  189. # class InspectionResultFileSerializer(serializers.HyperlinkedModelSerializer):
  190. # class Meta:
  191. # model = InspectionResultFile
  192. # fields = ('url', 'correction', 'notes', 'path', 'inspection_result')
  193.  
  194. # class ActionWorkSerializer(serializers.HyperlinkedModelSerializer):
  195. # class Meta:
  196. # model = ActionWork
  197. # fields = ('url', 'no', 'do_on', 'progress_calc', 'status', 'action', 'do_action', 'asset', 'part', 'work', 'inspection_ref')
  198.  
  199. class UserLoginSerializer(serializers.ModelSerializer):
  200. username = serializers.CharField(required = False, allow_blank=True)
  201. email = serializers.EmailField(label = "Email Address", required = False, allow_blank=True)
  202. token = serializers.CharField(allow_blank=True, read_only= True)
  203. class Meta:
  204. model = User
  205. fields = (
  206. 'username',
  207. 'password',
  208. 'token',
  209. 'email'
  210. )
  211.  
  212. extra_kwargs = {"password":
  213. {"write_only":True}
  214. }
  215.  
  216. def validate(self, data):
  217. user_obj = None
  218. email = data.get('email', None)
  219. username = data.get('username', None)
  220. password = data.get('password', None)
  221.  
  222. if not email and not username:
  223. raise ValidationError("A username or email is required to login")
  224.  
  225. user = User.objects.filter(
  226. Q(email = email) |
  227. Q(username = username)
  228. ).distinct()
  229. user = user.exclude(email__isnull = True).exclude(email__iexact='')
  230. if user.exists() and user.count() == 1:
  231. user_obj = user.first()
  232. else:
  233. raise ValidationError("This username/email is not valid.")
  234.  
  235. if user_obj:
  236. if not user_obj.check_password(password):
  237. raise ValidationError("Incorrect credentials please try again.")
  238. data["token"] = "Some Randon Token"
  239. return data
  240.  
  241.  
  242. '''
  243. baris bawah api untuk download
  244. '''
  245.  
  246.  
  247. class AssetDownload(serializers.HyperlinkedModelSerializer):
  248.  
  249. class Meta:
  250. model = ConveyorAsset
  251. fields = ('id', 'code')
  252.  
  253. class CustomerDownload(serializers.HyperlinkedModelSerializer):
  254.  
  255. class Meta:
  256. model = Customer
  257. fields = ('id', 'name')
  258.  
  259. class SiteDownload(serializers.HyperlinkedModelSerializer):
  260.  
  261. class Meta:
  262. model = Site
  263. fields = ('id', 'name')
  264.  
  265. class ConveyorDownload(serializers.HyperlinkedModelSerializer):
  266. assets = AssetDownload(many = True, read_only=True)
  267. class Meta:
  268. model = Conveyor
  269. fields = ('id', 'code', 'assets')
  270.  
  271.  
  272. class PartToInspectDownload(serializers.HyperlinkedModelSerializer):
  273. part = serializers.StringRelatedField()
  274. class Meta:
  275. model = PartToInspect
  276. fields = ('id', 'part')
  277.  
  278. class ActionTeamDownload(serializers.HyperlinkedModelSerializer):
  279. employee = serializers.StringRelatedField()
  280. class Meta:
  281. model = ActionTeam
  282. fields = ('id', 'employee')
  283.  
  284. class ActionDownloadSerializer(serializers.HyperlinkedModelSerializer):
  285. conveyor = ConveyorDownload()
  286. customer = CustomerDownload()
  287. site = SiteDownload()
  288. part_to_inspects = PartToInspectDownload(many = True, read_only=True)
  289. action_teams = ActionTeamDownload(many = True, read_only=True)
  290.  
  291. def validate(self, attrs):
  292. instance = Action(**attrs)
  293. instance.clean()
  294. return attrs
  295.  
  296. class Meta:
  297. model = Action
  298. fields = ('url', 'id', 'maintenance_type', 'schedule_date', 'conveyor', 'status', 'action_no', 'action_ref', 'notes', 'customer', 'site', 'part_to_inspects', 'action_teams')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement