views.py 文件源码

python
阅读 20 收藏 0 点赞 0 评论 0

项目:georef 作者: rukayaj 项目源码 文件源码
def get_context_data(self, **kwargs):
        context = super(GeoReferenceUpdateView, self).get_context_data(**kwargs)

        if len(self.object.potential_georeferences.values()) < 2:
            self.object.auto_geolocate()
            self.object.save()

        context['feature_type_choices'] = models.FeatureType.objects.all()
        context['geographical_position_form'] = forms.GeographicalPositionForm()
        context['potential_geographical_positions'] = self.object.get_serialized_geolocations()

        same_collector = []
        if self.object.locality_date and self.object.group_id:
            date_upper = self.object.locality_date + relativedelta(months=+3)
            date_lower = self.object.locality_date + relativedelta(months=-3)
            same_collector_points = models.GeoReference.objects.filter(group_id=self.object.group_id,
                                                                       locality_date__range=[date_lower, date_upper],
                                                                       geographical_position__isnull=False)
            for p in same_collector_points:
                # p.geographical_position.origin = models.GeographicalPosition.SAME_GROUP
                p.geographical_position.notes = 'Visited by same collector on ' + formats.date_format(p.locality_date,
                                                                                                      "SHORT_DATE_FORMAT")
                # same_collector.append(p.geographical_position)
                same_collector.append(p)
        if same_collector:
            context['same_collector'] = serialize('custom_geojson', same_collector, geometry_field='point')

        if self.object.geographical_position:
            if self.object.geographical_position.point:
                context['geographical_position'] = serialize('geojson', [self.object.geographical_position, ],
                                                             geometry_field='point')
            else:
                context['geographical_position'] = serialize('geojson', [self.object.geographical_position, ],
                                                             geometry_field='polygon')

        return context
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号