Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2016
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.66 KB | None | 0 0
  1. class ExhibitionSurveyObject(models.Model):
  2. owner = models.ForeignKey(User, verbose_name="Owner of this Survey object", blank=False,)
  3. name = models.CharField(max_length=15, blank=False, verbose_name="Survey Object name", help_text="Please give a single word name for your farm",)
  4. farmer_email = models.EmailField(max_length=254, blank=False, verbose_name="Email of the farmer", )
  5. farmer_name = models.CharField(max_length=25, blank=False, verbose_name="Name of the farmer", )
  6. address = models.TextField(help_text="Please provide the address without the postal code", blank=True,)
  7. postal_code = models.CharField(max_length=5, blank=True, default='12043')
  8. size = models.DecimalField(max_digits=9, decimal_places=6, blank=False, )
  9. path = models.CharField(max_length=1000, blank=False)
  10. def setpath(self, x):
  11. self.path = json.dumps(x)
  12.  
  13. def getpath(self, x):
  14. return json.loads(self.path)
  15.  
  16. OBJECT_TYPES = (
  17. ('FARM', 'Farm'),
  18. ('SOLARPANEL', 'Solarpanel'),
  19. ('PLAIN', 'plain')
  20. )
  21. object_type = models.CharField(max_length=100, choices=OBJECT_TYPES)
  22. CYCLES = (
  23. ('ONCE', 'once'),
  24. ('WEEKLY', 'weekly'),
  25. ('MONTHLY', 'monthly')
  26. )
  27. cycle = models.CharField(max_length=100, choices=CYCLES)
  28.  
  29. #To add user's full name in the admin interface for better readability
  30. def get_owner_full_name(self):
  31. return self.owner.get_full_name()
  32.  
  33. #Works like a verbose_name but for a method
  34. get_owner_full_name.short_description = 'Owners full name'
  35.  
  36. class ExhibitionSurveyObjectSerializer(serializers.ModelSerializer):
  37.  
  38. class Meta:
  39. model = ExhibitionSurveyObject
  40. fields = '__all__'
  41.  
  42. def create(self, validated_data):
  43. return ExhibitionSurveyObject.objects.create(**validated_data)
  44.  
  45. def update(self, instance, validated_data):
  46. instance.name = validated_data.get('name', instance.name)
  47. instance.farmer_email = validated_data.get('farmer_email', instance.farmer_email)
  48. instance.farmer_name = validated_data.get('farmer_name', instance.farmer_name)
  49. instance.address = validated_data.get('address', instance.address)
  50. instance.postal_code = validated_data.get('postal_code', instance.postal_code)
  51. instance.size = validated_data.get('size', instance.size)
  52. instance.path = validated_data.get('path', instance.path)
  53. instance.object_type = validated_data.get('object_type', instance.object_type)
  54. instance.cycle = validated_data.get('cycle', instance.cycle)
  55. instance.save()
  56. return instance
  57.  
  58. class ExhibitionSurveyObjectForm(forms.ModelForm):
  59. owner = CustomUserChoiceField(queryset=User.objects.all())
  60. class Meta:
  61. model = ExhibitionSurveyObject
  62. fields = "__all__"
  63.  
  64. class ExhibitionSurveyObjectList(generics.ListCreateAPIView):
  65. queryset = ExhibitionSurveyObject.objects.all()
  66. serializer_class = ExhibitionSurveyObjectSerializer
  67.  
  68. addObject(
  69.  
  70. name: string,
  71. farmer_email: string,
  72. farmer_name: string,
  73. size: string,
  74. path: Array<google.maps.LatLngLiteral>,
  75. cycle: string,
  76. object_type: string) {
  77. let obj = new ExhibitionSurveyObjectModel(name, farmer_email, farmer_name, size, path, cycle, object_type);
  78.  
  79. let body = JSON.stringify(obj);
  80. let headers = new Headers({ 'Content-Type': 'application/json; charset=utf-8', 'Authorization': 'Token ' + localStorage.getItem('auth_token') });
  81. let options = new RequestOptions({ headers: headers });
  82. console.log(body);
  83. return this.http.post(this._exhibitionSurveyObjectURL, body, options)
  84. .map(this.extractData)
  85. .catch(this.handleError)
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement