Beispiel #1
0
    def create_site(self, name=None):
        # create object
        if not name:
            name = self.company_name()

        site = self.get_or_create_node(
            name, 'Site', META_TYPES[3]) # Location

        # add context
        self.add_network_context(site)

        # choices
        country_codes = self.get_dropdown_keys('countries')
        countries = [ x[1] for x in DropModel.get('countries').as_choices()[1:] ]
        site_types = self.get_dropdown_keys('site_types')

        data = {
            'country': random.choice(country_codes),
            'longitude': self.fake.longitude(),
            'latitude': self.fake.latitude(),
            'area': self.random_county(),
            'owner_id': self.fake.license_plate(),
            'owner_site_name': self.fake.company(),
            'url': self.fake.url(),
            'telenor_subscription_id': self.fake.license_plate(),
        }

        # add site type
        if site_types:
            data['site_type'] = random.choice(site_types)

        for key, value in data.items():
            if value:
                value = self.escape_quotes(value)
                site.get_node().add_property(key, value)

        # add address
        num_address = random.randint(1, 3)

        for i in range(num_address):
            address = self.create_address(context_f=self.add_network_context)
            helpers.set_has_address(self.user, site.get_node(), address.handle_id)

        # add site owner
        site_owner = self.create_site_owner()
        helpers.set_responsible_for(self.user, site.get_node(), site_owner.handle_id)

        return site
Beispiel #2
0
def edit_site(request, handle_id):
    # Get needed data from node
    nh, site = helpers.get_nh_node(handle_id)
    relations = site.get_relations()
    if request.POST:
        form = forms.EditSiteForm(request.POST)
        if form.is_valid():
            # Generic node update
            helpers.form_update_node(request.user, site.handle_id, form)
            # Set site owner
            if form.cleaned_data['relationship_responsible_for']:
                responsible_nh = NodeHandle.objects.get(pk=form.cleaned_data['relationship_responsible_for'])
                helpers.set_responsible_for(request.user, site, responsible_nh.handle_id)
            if 'saveanddone' in request.POST:
                return redirect(nh.get_absolute_url())
            else:
                return redirect('%sedit' % nh.get_absolute_url())
    else:
        form = forms.EditSiteForm(site.data)
    return render(request, 'noclook/edit/edit_site.html',
                  {'node_handle': nh, 'form': form, 'relations': relations, 'node': site})
Beispiel #3
0
def insert_site(site_dict):
    """
    :param site_dict: data
    :type site_dict: dict
    :return: None
    :rtype: None

    Expected dict
    {
        u'name': u'',
        u'area': u'',
        u'country': u'',
        u'longitude': u'',
        u'node_type': u'Site',
        u'meta_type': u'Location',
        u'site_owner': u'',
        u'latitude': u'',
        u'site_type': u''
    }
    """

    user = utils.get_user()
    # Remove meta data and relationship data from the site dict
    name = site_dict.pop('name')
    node_type = site_dict.pop('node_type')
    meta_type = site_dict.pop('meta_type')
    site_owner = site_dict.pop('site_owner')
    # Get or create Site
    site_nh = utils.get_unique_node_handle(name, node_type, meta_type)
    # Set or update node properties
    helpers.dict_update_node(user, site_nh.handle_id, site_dict,
                             site_dict.keys())
    if site_owner:
        # Get or create Site owner
        site_owner_nh = utils.get_unique_node_handle(site_owner, 'Site Owner',
                                                     'Relation')
        # Set relationship to site owner
        helpers.set_responsible_for(user, site_nh.get_node(),
                                    site_owner_nh.handle_id)
    logger.info(u'Imported site {}.'.format(name))
Beispiel #4
0
 def add_responsible_for(self, user, relation_nh, location_nh):
     location_node = location_nh.get_node()
     relation_handle_id = relation_nh.handle_id
     helpers.set_responsible_for(user, location_node, relation_handle_id)
Beispiel #5
0
 def link_responsible_for(cls, user, location_nh, responsible_for_nh):
     location_node = location_nh.get_node()
     responsible_for_id = responsible_for_nh.handle_id
     helpers.set_responsible_for(user, location_node, responsible_for_id)